home *** CD-ROM | disk | FTP | other *** search
/ Risc World Words - Complete RISC World 1 to 6 / Risc World Words - Complete RISC World 1 to 6.iso / HTML / VOLUME4 / ISSUE3 / TEXT < prev   
Text File  |  2006-03-20  |  157KB  |  1,658 lines

  1.  
  2. ÿÿÿÿVOLUME4/ISSUE3/32BIT/INDEX.HTM Volume 4, Issue 3, 32bit Conversions
  3.  
  4.  
  5.  
  6.  
  7. 32bit Conversions
  8. A programmers tale by Michelle Kate
  9. There is nothing new in one software company buying the rights to a product from a defunct company or a company that no longer wants to support a specific platform. It happened frequently throughout the 1980s when one ZX Spectrum software company would go under, only for the rights to be bought by another (for instance, Ocean bought Imagine, but sold the software right to Melbourne House who later sold these rights onto Mastertronic and so it goes on).
  10. This sort of thing also happened in the 1990s, but mainly on the PC platform. In the early 2000s, with the our own platform in danger of disappearing, APDL/ProAction began to buy up the rights to the titles from former RISC OS companies and selling them through APDL. While it was not exactly earth shattering, it did enable people to get hold of software which had previously vanished. With a few modifications it was possible to get most products to work on the StrongARM RiscPCs and OS 4 machines.
  11. Then came the Iyonix and the push to a new 32 bit RISC OS and this has caused a bit of a problem.
  12. The problem is simple, a lot of the applications purchased did not come with the source code, making 32bit conversions rather expensive. Additionally some of the applications had already undergone a number of modifications that did not require the source code (such as the changes made to the EasyC++ package), to make these products 32 bit would require a large amount of work.
  13. Fortunately, this was not the case when APDL bought up the sources and packages from Clares Micro Supplies.
  14. First things first
  15. I had been supplied by APDL with the sources to the Clares version of RISC_OSLib, Schema2, Schemex and WimpBasic2. Rather than try to do everything at once I needed to know if the sources would compile without too many problems. RISC_OSLib did. However that's where the good luck stopped.
  16. WimpBasic2 had a couple of problems. The main one being that the dependencies could not be fully met. I had not been supplied with one of the libraries required to compile the application. Eventually, the original author told me that he had never supplied the original sources to Clares and that they had only ever had the linkable object.
  17. Eventually, I was sent the old linkable object, but with a number of functions not prototyped from within the main sources. Once these were resolved, the application, linker and module compiled. Next came compiling Schema and its bits. What a disaster!
  18. I spent an entire working day just getting the source code to compile. The reason was quite simple, some functions being used had not been prototyped or had been prototyped, but the header they were prototyped in was not included. This was further complicated by the source code not being in the typical c and h directories, but branched off into further subdirectories.
  19. After many hours sorting out the prototypes, headers and a few small bugs along the way, Schema2, Schemex and Macroedit finally compiled.
  20. Going 32bit
  21. The first thing to do was ensure that any assembler used was 32 bit clean. That meant removing all MOVS lr,pc lines (this would become MOV) as well as returning out of a function with the ^ set at the end of the LDM line or any other 32 bit no-nos. Here I found the advice on 
  22. Recompilation was through the makefiles.
  23. To get the code to compile as 32 bit, the following flags were added to the CCFLAGS line
  24.      -apcs 3/32bit/fpe3
  25. And to the objasm lines:
  26.      -apcs 3/32
  27. And finally, for the module:
  28.      -32bit
  29. Although this was not really required as the 32 bit version of cmhg defaults to that flag.
  30. I also had to do this with RISC_OSLib as the stubsg version has missing headers and the Castle one required a bit of patching for the Clares software to work fully.
  31. One final obstacle remained, the object file sent from the original WimpBasic author. This was definitely 26 bit only and 32 bit unsafe. I went through the AOF file by hand removing all of the unsafe code and replacing it with the 32 bit clean code. Finally everything was go! Schema2, Schemex, Macroedit and WimpBasic2 were now all 32 bit clean.
  32. However a sting in the tail awaited...
  33. There is always a problem when you're using a version of a library which has been played with so much. RISC_OSLib has to be one such beast. While most who have the Acorn C package (irrespective of which version) or EasyC++ will have a precompiled version, registered developers and a few others had a full source code release.
  34. In theory, they could add their own parts, create minimal library versions and fix the bugs which had been in there. This is nice in theory but in fact is a recipe for disaster.
  35. While I'm not saying that every developer made a muck of it (which is obvious from the number of commercial developers who have released software linked to their own versions of RISC_OSLib) there were a couple of good muck ups in the version supplied to me.
  36. The first was that the iconbar menu did not have the program name on it. That was quite a fun one to find. It didn't take too long as I had a different version of the source code to compare it to.
  37. The second was a problem which had shown up in that the maximum available wimpslot would be taken. That could mean a simple 28k wimpslot program would take the full 28Mb. Again it was a problem in RISC_OSLib, where it had been altered so that the wimpslot was not using the parameters passed in. As soon as this was fixed, the code used the correct size wimpslot.
  38. The very final thing prior to testing was to add the following lines to load the 32 bit modules into the !Run file.
  39. That done, the apps were sent back with new version numbers, bug fixes ready for testing.
  40. The Moral of the story
  41. Next time you hear the line "it's very simple to 32 bit an application" think again. Yes, it is simple to do if the source is your own and you know that there is nothing in there which is assembler (or if there is assembler, that it is already 32 bit clean). It is not simple to do if you inherit the source code with no documentation, without all of the source code and any of the other problems I've detailed here.
  42. The 32 bit versions of Schema2 and WimpBasic2 should be available at the South East show.
  43. Michelle Kate
  44.  
  45. ÿÿÿÿVOLUME4/ISSUE3/AGM/INDEX.HTM Volume 4, Issue 3, The RISCOS Ltd AGM
  46.  
  47.  
  48.  
  49.  
  50. The RISCOS Ltd AGM
  51. Aaron was invited...
  52. The RISCOS Ltd AGM was once again held in Cambridge on the 12th of September at the Quy Mill Hotel. I was invited both as a shareholder and as a RISCOS Ltd AMS (Authorised Manufacturing Sublicence), since VirtualAcorn and RISCOS Ltd signed a deal a couple of weeks before the AGM that allows VirtualRPC-SE to be sold as a stand alone product.
  53. Cambridge is only a couple of hours away from Bracknell and the route is almost all motorway, apart from the M11 that is. Now I know that the M11 is supposed to be a motorway but I can't help feeling that it was designed by someone who had heard about motorways but never actually experienced one. The bottom part of the M11 is a nice sensible three lane motorway, then suddenly it goes down to two lanes, and your speed drops to a heady 56 mph, why? Well because the M11 is a drag strip for HGVs, two metal behemoths battle it out nose to nose, will the french lorry loaded with empty palettes be able to beat the plucky British contender? Or will the British lorry carrying 12 tons of pork scratchings pull out without looking and cause an accident? Guess which. The motorway (and the lorries) wind their way through some of England's best countryside, I was rather hoping that a Police Wolsley (complete with bell) might have pulled the lorries over and given the drivers a damn good ticking off, but no such luck. Anyway I eventually arrived at the AGM and set up a couple of machines for demonstration purposes and then sprinted to the bar for a small soda water. Just as I was heading to the bar MicroDigital arrived with an Omega and an Alpha. I was later told that there should have been an Iyonix present but that Chris Evans couldn't make the meeting.
  54. The AGM opened at 2 0'clock, and was not especially well attended. Indeed half the chairs were empty which I think is a bit off. If shareholders know that they are not coming then they should inform the company, the only upside of the low attendance was that there was no danger of running out of coffee. The first half of the meeting was a bit of an eye opener, normally any discussion about the RISCOS Ltd accounts turns into an argument, however this year, perhaps due to the non-attendance of some shareholders, it didn't. Paul Middleton took us through the sales figures up to the 30th of August, the most important ones were:
  55. Foundation membership was running at 673 subscribers
  56. There were 655 current Select subscribers
  57. Almost 800 Manuals CDs had now been sold
  58. RISC OS 4 ROMS are still selling at the rate of 18 a month
  59. There have been 200 AMS sales so far this year
  60.  
  61. Paul Middleton then took us through some of the new product proposals that RISCOS Ltd are considering, these included:
  62. A ROM based version of Select (estimated at just over £100 for Select subscribers
  63. A New RISC OS 4 bundle complete with CD-ROM drive
  64. A Select "Easy-Start" printed guide book (along the lines of some of the PC guidebooks
  65. A RISC OS PRM CD (currently versions of the RISC OS 4 PRM are only available to Select subscribers
  66. A RISC OS updates CD containing the contents of the RISCOS Ltd ftp site
  67.  
  68. He then explained some of the other projects RISCOS Ltd are working on, including:
  69. Replacing ADFS with a faster more efficient filing system
  70. Supporting better graphics cards (no doubt prompted by the new Radeon versions of the ViewFinder)
  71. Producing disc partitioning software
  72. Making some changes to BASIC to match the improvements offered by the Iyonix
  73. Producing special versions of Select for VirtualAcorn
  74. Continuing development on embedded RISC OS
  75. More new versions of the Toolbox modules for all versions of RISC OS
  76.  
  77. Paul also explained that the market for RISC OS 4 upgrades was drying up and he expected that only a few hundred more RISC OS 4 upgrades were likely to be sold (note that's upgrades, not new machine sales). The situation with regard to Copyright was cleared up a little. The RISC OS name belongs to Castle, as does RISCOS Ltd's head licence. Select belongs to RISC OS Ltd, and some other bits belong to others, for example Replay belongs to Broadcom.
  78. Paul also stated that there would be a further share issue early in the new year to support other projects that RISCOS Ltd were considering, such as a 32bit version of Select. At the last share issue shares were sold for £1.25 and it was hoped that 50,000 new shares would be available in the next issue. Another good bit of news concerned RISCOS Ltds financial situation. Although turnover was down, so were expenses, indeed as RISCOS Ltd has now gone beyond the four year period specified in the head licence the fixed cost of paying for the head licence has now been removed, so the company should return a profit in the current financial year.
  79. We then broke for a short interlude while everyone had a play with the machines and a quick coffee/tea/orange juice.
  80. We then got on to the second part of the meeting, the Castle lead consortium that "purchased" RISC OS from Pace. Some in the meeting felt that Pace may have been wrong to sell RISC OS in such a way that allowed Castle to sell into RISC OS Ltd's target market. There may be some strength to this argument but after a long discussion the meeting felt that RISCOS Ltd should try to reach some sort of agreement with Castle over future developments.
  81. Some further details of the Castle/Pace deal did become available.
  82. Will Select and RISC OS 5 merge? No
  83. There was be no changes for AMS's (MicroDigital, RISCStation and VirtualAcorn)
  84. Castle cannot licence RISC OS 5 for use with existing products.              
  85. RISC OS Ltd will not licence RISC OS 4 to competing products
  86.  
  87. I would have thought that someone from Castle might have turned up to the meeting to answer questions, but no one did.
  88. So in all the AGM went very well, RISC OS Ltd are on track to make a profit this year, they have signed two new AMS agreements, one to MicroDigital and one to VirtualAcorn and everyone seemed very happy with the proposals put forward by Paul Middleton. Indeed the meeting actually ended with a round of applause for Paul. I enjoyed the meeting greatly and look forward to more of the co-operation we have been seeing over the last few months.
  89. Aaron
  90.  
  91. ÿÿÿÿVOLUME4/ISSUE3/AOL/INDEX.HTM Volume 4, Issue 3, Archive on Line
  92.  
  93.  
  94.  
  95. Archive on Line
  96. Keith Johnson with the moderators cut
  97. Since my last attempt at trying to give an insight into the arcane world of a mailing list moderator real life has got in the way of 'art'. When I was made redundant I was forced to look long and hard at the forty two years I had put into my profession in the public service. Overall I think it was worthwhile and I am confident I touched many lives and achieved some lasting improvements in the areas I was active. I also know that I upset an awful lot of folk either when I considered enforcement action appropriate or found myself adjudicating in a dispute. However the long hours, emergency call outs and the like took a toll on my family and I decided that I would try, in some small measure, to make it up to them.
  98. Technical for non Techies
  99. The investment in BT Home Highway has worked well overall, though it is still too soon to do realistic cost comparisons. The service to Archive-on-Line has improved as I now process messages whenever I am passing the host machine. It can be tempting to sit here for long periods but mostly that can be resisted. What is particularly entertaining is the speed at which the postings are sent out, one gets a strange  satisfaction from watching the numbers click over in the !PopStar window and watch the list of messages diminish as they go out. I really must get a life!
  100. One glitch we've had from the beginning is that we've been losing the connection somewhere from time to time. It usually restores itself within a short while. This is particularly noticeable during long downloads when the connection is lost and you have to start again. It does not affect Archive-on-Line too much as the software is generally working in the background and handles the situation automatically so messages come and go unobserved. It is only when you are downloading a large attachment or upgrade that you might spot it is happening. Initially I lived with the problem but a few weekends ago we lost the service altogether for over two days. Ah well! Back to the modem. As it appeared to me to be a server problem, all the connections to the network were sound and all the lights aglow, I chased Freeserve but their logs showed no problems. I then checked the network again and still I could not see anything which could be causing this effect, nothing appeared amiss. I then tried BT and to my surprise they found a fault on the line which might not affect voice calls but could upset the ISDN. They promised to call to sort it out in seven days. Later that day the connection came back of its own accord. In the event they came in five. Problem confirmed and rectified.
  101. However the short intermittent 'hang ups' persist and so far have defied BT's best efforts to trace the cause. As you would expect when the supervisor came round this week to try to resolve it once and for all the system worked flawlessly, despite our pushing it hard. BT have not given up but the options are becoming limited.
  102. All this became particularly galling when I learned one of the adjacent villages, well exchange really, is getting Broadband very soon.
  103. Archive-on-Line Miscellany
  104.  
  105. Whilst !NetFetch continues to handle the news group downloads emails are now fetched by !AntiSpam in an attempt to reduce the amount of junk coming into the mailboxes. By and large it works very well but I seem to have reached the limit of my ability to define rules to wholly block spam from Archive-on-Line as well as some of the more subtle stuff coming to my private address.
  106. I am now toying with the idea of try to introduce !SpamStamp into the chain to mark and divert into a junk file the stuff evading !AntiSpam. I don't know if it will work but it could be fun trying.
  107. The 'Digital Camera Sound Editing' or 'Digital Cameras' saga continues and messages with this subject are still banned as containing dangerous code. One suggestion has been that this ban was introduced to combat an unconventional use of mobile phone cameras. Whatever the reason certain ISPs will not pass these messages on to their subscribers. Who knows what other apparently innocent messages are being withheld. If you do intend to ask questions in this area or provide the answers please find another subject text. My attempts to change the headings to 'Non Analog Photographic Apparatus' are not always successful and it is a pain and a chore to have to do it
  108. AOL v Aol
  109. We do not have many subscribers using AOL as an ISP but your Editor is one who does..
  110. So it was interesting to start receiving bounced messages from that widely advertised source refusing to pass on any messages from Archive-on-Line. The reason given is reproduced below:
  111.      SMTP error from remote mailer after initial connection
  112.      host mailin-02.mx.aol.com [64.12.136.89]:  (RLY:B1
  113.      The information presently available to AOL indicates this serve
  114.      is generating high volumes of member complaints from AOL's membe
  115.      base. Based on AOL's Unsolicited Bulk E-mail policy a
  116.      http://www.aol.com/info/bulkemail.html AOL may not accept furthe
  117.      e-mail transactions from this server or domain
  118.      For more information, please visit http://postmaster.info.aol.com
  119.  
  120. Attempts to contact a real person have, to date, proved fruitless. (I have now spoken to someone who for want of better evidence I am prepared to consider could be human - ED). Attempts to gain more information from the postmaster or access the policy have not taken us any further forward. We are also, sometimes, similarly affected by their 'associate companies'. It begs several questions:
  121. Is this major company having a go at poor little ol' us?
  122. How many complaints have they actually received from their member base?
  123. Has some spammer been using our identity for nefarious purposes?
  124. If so then how did they get hold of it? This is supposed to be a members only list.
  125. Just how badly is their monitoring software written?
  126. How many more questions can a paranoid moderator come up with?
  127. As you are with another ISP do you really care?
  128. Disclaimers
  129.  
  130. One of the things about this job is that you are always learning something new. Usually it is contained in the correspondence passing across the screen. Occasionally something rears up and bites your ... well never mind.
  131. As a direct result of a rearing, biting thing I took some serious (I paid for it) advice and found that the Internet is not the last resting place of freedom of speech. You cannot go out and express yourself with total impunity. We are all aware of the danger that something you dashed off in anger , or misplaced humour, can come back, maybe years later, to haunt you. Government is plagued by it and television programmes are made about it. What I did not realise, but obvious when you think about it, is that as moderator of this list I have a responsibility for the accuracy and truthfulness of the content. This places me in the same position as you esteemed editor and publisher or that of any other publication. The reason for this is that I review each submission and make a decision as to which are passed on and if any changes are to be made. The fact that I may not know the facts are wrong is, apparently, no defence. If the list was unmoderated I could plead ignorance, apologise, withdraw the offending message and filter out any others. You would get to see everything including spam and then we really would be purveyors if not propagators of that stuff.
  132. Hence the disclaimer that now appears on the bottom of the messages from Archive-on-Line.
  133. Some folk have complained about it being there, its length and its content. I make no apology, I paid for the advice I'm not going to ignore it. The person who gave it will be the person defending it, and me, if it does not work.
  134. Suggestions have also been made that it only appear infrequently, in a welcome message or even on a web site. This would not suffice as one could not prove beyond doubt that everyone had seen it let alone taken it in.
  135. This exercise led me to collect a few other disclaimers which caught my eye. A selection, ever so slightly altered to protect the innocent, is reproduced below:
  136. This first one is used by the BBC:
  137. This e-mail (and any attachments) is confidential and may contain personal views which are not the views of the BBC unless specifically stated. If you have received it in error, please delete it from your system, do not use, copy or disclose the information in any way nor act in reliance on it and notify the sender immediately. Please note that the BBC monitors e-mails sent or received. Further communication will signify your consent to this.
  138. This one is used by a well known commercial company:
  139. DISCLAIMER: This e-mail contains proprietary information some or all of which may be legally privileged. It is for attention and use of the intended recipient only. If an addressing or transmission error has misdirected this e-mail, please notify the author by replying to this e-mail or email administrator@*************.com. If you are not the intended recipient you must not use, disclose, distribute, copy, print, take any action on, or rely on this e-mail. Internet communications  are not secure and therefore  ******* *******  Limited does not accept legal responsibility for the contents or attachments of this message, nor is it guaranteed virus free. Any views or opinions presented are solely those of the author and do not necessarily represent those of ******** *********  Limited. Registration no XXXXXXX.
  140. It is interesting to note that it is not guaranteed to be virus free many companies or organisations do now claim their messages have been checked by one system or another.used  Of course if you are providing services, say, within the NHS then your concerns may be different:
  141. "This message may contain legally privileged, confidential, commercial or patient information intended to be for the use of the individual(s) or entity named above. If you are not the intended recipient, please advise the sender and destroy all copies of the message as you would any other confidential waste (shredding or incineration for printed copies, deletion for electronic copies). Please note that any dissemination, distribution or copying of this message is strictly prohibited." "Unless expressly stated otherwise, the contents of this message represent only the views of the sender as expressed only to the intended recipient, do not commit X******* Hospitals Trust (XHT) to any course of action and are not intended to impose any legal obligation upon XHT".
  142. This Local Authority, not my former employer, has this an interesting glitch or just plain finger trouble which usually results in it being sent twice:
  143. The information contained in this email is intended only for the person or organization to which it is addressed. If you have received it by mistake, please disregard and notify the sender immediately. Unauthorized disclosure or use of such information may be a breach of legislation or confidentiality and may be legally privileged. Emails sent from and received by Members and employees of X****** County Council may be monitored. Unless this email relates to X****** County Council business it will be regarded by the Council as personal and will not be authorized by or sent on behalf of the Council. The sender will have sole responsibility for any legal actions or disputes that may arise.
  144. The last paragraph goes a lot further in protecting the organisation from the views of the sender by dumping responsibility firmly in their lap rather than just distancing the organisation to a safe distance.
  145. It also reminds me of one subscriber, employed by another local authority who has used his work mailbox to log onto Archive-on-Line. When I received a warning from the authority's postmaster I sent out a 'heads up' warning. Now the mailbox has been slammed shut on postings from this address. I hope no disciplinary action has been taken but it serves as a reminder to those posting from work to ensure that they are acting within company guidelines.
  146. I also wonder who, if anyone, has actually followed up on the dire warnings about unauthorised use of information hinted at in the above disclaimers. Makes you wonder also about the outcome of investigations into government leaks. Who would take the action and under what legislation? Official Secrets and where a commercial loss or consequential damage can be quantified I can see but most of the material must be less easily defined. If you come across other examples I would be interested in seeing them. I have looked, but cannot find, one that says something along the lines of: "If you receive this message in error please do not open it or read the contents." A genuine example must exist somewhere.
  147. Posting Stats and Subjects.
  148.  
  149. Since the Wakefield Show in May Archive-on-Line has handled some 2423 messages to date. The subject range is a wide as ever and I'll provide a breakdown next time.
  150. Many thanks to all who asked questions and particularly those who provided answers or otherwise contributed to the debates.
  151. Subscribing
  152.  
  153. Remember Archive-on-Line fills the gap between editions of RISC World (and Archive - ED) and is open to all current subscribers.
  154. There is no requirement for you to take out a further subscription. I hope you will contribute and help further to strengthen and enhance the current mail list and bring members of the RISC OS community a bit closer together, whilst not creating yet another, competing, forum. The list is moderated with, I hope, a fairly light touch but I do take advantage of !Pluto's facilities to add comments to postings from time to time. At the end of the day this avoids any increase in traffic my interventions would inevitably bring.
  155. Messages can be sent here at any time and are now sent on whenever I see them, real life not withstanding.
  156. Sensible snipping is always appreciated, as is the avoidance of bouncing emails when your mailbox is full.
  157. To subscribe please send a message to: 
  158. SIGNON or SUBSCRIBE
  159. in the Subject Line. Pluto picks up your message, adds you to the list and sends you a brief acknowledgement. You can put something in the body of the mail if you wish or if your software does not like sending blank messages. It will not affect Pluto but I do read them.  Anyone who signs on who is not a subscriber to RISC World or Archive will normally be sent a polite message and invited to subscribe or removed if a reply is not received in a day or so. As Pluto dates and times the entries on the list it is relatively simple to keep track of what is going on and I normally allow a period of grace of up to three months for the renewal of subscriptions before I remove someone from the list. This reduces the amount of time I have to spend checking valid memberships and gives time for late renewals to be processed.
  160. The only other reason for my removing someone is when I get fed up with mail being bounced by an ISP, so check your mailbox and subscription are up to date.
  161. In the unlikely event that you should wish to withdraw from the list then a message with:
  162. SIGNOFF or UNSUBSCRIBE
  163. in the Subject Line will automatically remove your name from the list.
  164. If your email address changes then signoff the old one and signon the new. You can try out the new address and run them both side by side until you are confident that the new one is working but do not forget to signoff the old address once you are happy. I look forward to hearing from you on the list.
  165. Contacting me
  166.  
  167. If you want to talk to me off list I can be contacted on 
  168. Keith Johnson with the moderators cut
  169.  
  170. ÿÿÿÿVOLUME4/ISSUE3/BASICV/INDEX.HTM Volume 4, Issue 3, BASICV a Dabhand Guide Part 1
  171.  
  172.  
  173.  
  174. BASICV a Dabhand Guide Part 1
  175. Alligata Media
  176.  
  177. About this book
  178. We have largely left this book unaltered: the original edition was written by Mike Williams and included a section relating to the DABS Press books and software which has, of course, been deleted and we refer you to 
  179. At present we are considering an update to this book to cover the use of more modern BASIC in the shape of that supplied with the Risc PC, but offer no promises beyond this re-print. This book was produced using Ovation Pro on my StrongARM Risc PC; with the whole mainly typed from an original which was produced using VIEW on a Master Compact before being laid out for press in MacAuthor.
  180. This book will be serialised in four parts over the next four issues of RISCWorld.
  181.  
  182. Contents
  183. Chapter 1 : Introduction
  184. Chapter 2 : Operators
  185.  
  186. New Assignment Operator
  187. New Unary Operator
  188. New Binary Operator
  189. Swapping Value
  190.  
  191. Chapter 3 : String Handling
  192.  
  193. String Function
  194. String Handling in File
  195. Organisation and Allocation o
  196. New Memory Allocation Syste
  197.  
  198. Introduction
  199.  
  200. Since the advent of the BBC micro in the autumn of 1981, it has been my view that BBC BASIC is one of the best implementations of this language produced for any computer. There are various reasons for making such a claim, the control of graphics, the access provided to the Operating System, the opportunities for sound, and more. Above all, it is its support for structured programming that most appeals.
  201. Look at almost any program written in BBC BASIC and you will see ample evidence of this approach. Typically, you will find a comparatively short main program, followed by large numbers of functions and procedures, and nary a GOTO or GOSUB in sight. Given that many users of BBC BASIC would not call themselves professional programmers, I take this wide scale adoption of structured programming to provide ample support for its benefits. Prominent among these must be that such programs are eminently more readable and understandable than those which make frequent use of GOTO and GOSUB. Understandable programs are far more likely to work, and much easier to modify in the future, if and when the need arises.
  202. Despite that, there have been a number of omissions even in BBC BASIC until now. For example, the IF...THEN...ELSE statement has often been the source of confusion when used in a nested form. The impossibility of executing any built in loop structure (FOR...NEXT and REPEAT...UNTIL) less than once will also, I am sure, strike a chord in many. These are not the only areas where BBC BASIC is less than perfect.
  203. Despite its shortcomings, BBC BASIC's widespread acceptance, particularly among educational users, has seen the release of BBC BASIC on other machines, notably the RM Nimbus, the Atari ST and the Apple Macintosh. Unfortunately, not all of the features of BBC BASIC that make the language so good, transfer sufficiently well onto other machines.
  204. Now we have the RISC-based Archimedes, Acorn's latest range of personal computers. To accompany the Archimedes, Acorn has released a new version of the BASIC language called BBC BASIC V. BASIC V is clearly an evolutionary step in the development of BBC BASIC. Virtually all that existed before remains, even if some features are implemented quite differently, for example, the software simulation of Teletext mode 7. Many existing BBC BASIC programs will run without modification on an Archimedes, using ARM BASIC, not just under the 6502 emulator. In many cases they benefit from the enormous increase in speed that the Archimedes range provides.
  205. The thing that really sets BASIC V apart from previous versions is the addition of several important programming structures, WHILE...ENDWHILE, CASE...ENDCASE for example, and, not before its time, a fully block-structured IF...THEN...ELSE. There is also a full range of matrix operations, improved parameter passing to functions and procedures, support for the new 256 colour modes, and the Archimedes palette of 4096 colours. This list by no means exhausts the new additions - a wealth of smaller details has substantially improved an already respected language.
  206. Despite all these new features, there is, I believe, a very real danger that many Archimedes users, accustomed to using BBC BASIC on the BBC micro and other machines, will fail to appreciate the much richer programming environment that now exists with BASIC V. Thus this book, which might seem to have an obvious theme in documenting and explaining all that is new about BASIC V, will we hope also serve to show just what riches await the adventurous and imaginative programmer.
  207. Another point to consider here is the openness of the Archimedes, and indeed any BBC micro. There is no difficulty, as with some machines, in accessing from BASIC the many Operating System routines, both within the OS ROM and in the many relocatable modules used to extend the Operating System. There was a great temptation to stray from the straight and narrow and attempt to cover all of these areas as well.
  208. What I have done is to explain, as fully as possible, all the new features, large and small, of BASIC V itself. In addition, I have covered the means which BASIC provides to the programmer to go outside the confines of the BASIC language in order to exploit the whole of the Archimedes system. Apart from a few enticing tasters, these wider aspects are beyond the scope of this book. The boundary that I have drawn may at times see arbitrary, but fundamentally I believe that it has a sound logical basis.
  209. I have included plenty of short examples, and tried to ensure that the new features of BASIC V are frequently included in them. Much can be learnt from other people's programs. Inevitably, you will find some new ideas being used before they have been fully described, and you may wish to follow any such new ideas where you come across them. This should cause no problems. The chapters do form a logical order, but each one is largely self-contained.
  210. The book is aimed at those who have reasonable familiarity with programming in BBC BASIC. This is not a book for complete beginners, nor is it necessarily addressed to those who find their greatest interest deep in the bits and bytes of assembler. It is for the very large majority of Archimedes users who simply want to exploit this super machine to the best of their ability.
  211. I hope you will learn something, and that you will get satisfaction from that learning process, and from putting your new knowledge into practice. Don't, however, be afraid to experiment. Some of the details in this book were only determined by extensive trial and error. Remember, there is no substitute for practical experience.
  212. Alligata Media
  213.  
  214. ÿÿÿÿVOLUME4/ISSUE3/DISC/INDEX.HTM Volume 4, Issue 3, DiscWorld
  215.  
  216.  
  217.  
  218. DiscWorld
  219. Aaron Timbrell probes into the software directory
  220. This issue we are giving all our readers a free copy of Recycler, the recycle bin application originally developed by Fabis Computing, and now owned by APDL and ProAction.
  221. Recycler
  222.  
  223. Recyler offers a "Windows" style recycle bin, where all your deleted files are kept. Normally, whenever a file is deleted it cannot be recovered and your work is lost.  With the Recycler application installed you can recover and manage these files, a little like having an 'undo' option for your hard drive.
  224. Recycler stores all files as they are deleted in what is called a 'Bin' directory.  Files can then be recovered from this 'Bin' before they are actually deleted.
  225. Recycler must be running in order to grab files as they are being deleted; it cannot recover previously deleted files.
  226. The 'Bin' is normally located inside the Recycler application, however you can move it to another location. See the section 'Choices'.
  227.  
  228. You should note that Recycler needs enough disc space to store the file you are deleting, since it is in effect copied to the 'Bin' before it is removed from the disc.
  229. It is of vital importance that the 'Bin' directory is not tampered with in any way.  You should not try to add or remove files, or delete the 'Bin' directory itself. Failure to observe this warning could result in your losing the previously deleted files.
  230. The complete DiscWorld line up
  231. BasicV
  232. Any example program listings from BASIC a DabHand guide.
  233. Files
  234. Support materials for Brian Pickards file transfer series.
  235. Games
  236. All the games from this issues games world column all ported by Peter Naulls.
  237. MakeModes
  238. The Acorn application for generating RiscPC screen modes.
  239. Also included is an example MDF (Monitor Definition File) produced for a 21" Formac ProNitron monitor (effectively a 21" Sony). This includes a number of higher refresh modes, including a 1600 x 1200 68Hz mode, which looks very impressive. Note that you should check the specifications of your monitor before using this MDF as it is designed for large high spec CRT displays.
  240. PD
  241. All the latest PD, shareware and freeware releases from the PD column.
  242. Recycle
  243. The complete version of Recycler.
  244. TextArea
  245. Sample text areas from Dave Holdens article.
  246. ToolBox
  247. This contains two sets of Toolbox Modules. The Castle archive contains the latest 26/32 bit neutral system components, required if you want to run a lot of new software releases on 26bit machines (ie. anything that isn't an Iyonix). The RISCOS Ltd archive contains later and improved versions of a number of modules and is suitable for all versions of RISC OS from 3.1 onwards.
  248. Aaron Timbrell
  249.  
  250. ÿÿÿÿVOLUME4/ISSUE3/EDITOR/INDEX.HTM Volume 4, Issue 3, Editors Corner
  251.  
  252.  
  253.  
  254.  
  255. Editors Corner
  256. Aaron Timbrell's own bit of the magazine.
  257. Well it is now a couple of months since Pace announced that Castle had purchased RISC OS and....nothing seems to have happened. No big press releases, no massive promotional campaigns, in fact all I have seen is a couple of "Buy an Iyonix, get a free thingy" type promotions. I really was rather hoping that we would have had some exciting new developments with RISC OS 5 and the Iyonix by now, especially as new faster code compatible XScale processors are being released. Still Castle do have a well deserved reputation for keeping things close to their chests. Let's hope we all find out what they have in store in the next few months.
  258. Meanwhile RISC OS Ltd seem to have been pulling out all the stops, with some more updates to RISC OS Select (as previewed in RISC World Volume 4 issue 1) as well as new toolbox modules and a host of other goodies. On a personal note I should point out that up until recently I hadn't subscribed to Select. I kept thinking about it, but then not doing it. Now I have and so far I am really rather pleased with it. I still think it is expensive, but then I do know that development costs money, and Select does show that RISC OS 4 is still being heavily developed and in very useful directions.
  259. As I am sure most readers will have now noticed VirtualRPC-SE is now available as a stand alone product, and not just on the MicroDigital Alpha. This has kept us rather busy over the last few months but does lead neatly into this months rant....
  260. Editors Rant of the month
  261. As I am writing this it is one week since we announced VirtualRPC-SE, and a few days until we are going to start shipping. This is good news, in fact it is very good news. However something odd has been happening over the last week, we have been approached by a number of individuals with "business proposals". Now I don't mean the usual "help me get $25 million dollars out of Angola - signed Winston Kadogo" e-mail spam, but "genuine business proposals" from those associated with the RISC OS community in some way. These proposals take one of two forms.
  262. The first is the "perhaps you would like to bundle some of my old software with VirtualRPC-SE and pay me a royalty per copy." Interesting, and exactly where were these people nearly two years ago when we were trying to sort out the VirtualA5000 disc build? Well in several cases they were walking in the general direction of away whilst competing in the 100 yds nonchalant dash. A lot of very supportive and helpful people did help us out with the disc build, and most of them are credited in the disc build pages supplied with VirtualA5000 and on our website (if anyone has been forgotten then I apologise). Some others simply were not interested, so we sourced the software we wanted from other authors.
  263. Some developers wanted to collaborate with us to help promote VirtualAcorn and their own products at the same time, and we were delighted to work with them. Some dealers want to sell VirtualA5000, so we gave them a discount. Some said they wanted to help but were not in a position to do so as RISC OS 3.1 wasn't suitable, which is fair enough. In some cases we were met with a very luke warm response, and a general lack of any interest whatsoever.
  264. Now suddenly some of these disinterested developers are sidling over and whispering "..want some software guv" in our ears. Well we did want your software two years ago, now we don't need it, sorry. In one interesting case one developer said they would match what we paid for one particular software item in the VirtualAcorn disc build. We told them what we paid. I haven't heard from them since. We have another one who was adamant that they would not sell VirtualA5000, but now seems to want to sell their own PCs with VirtualRPC-SE bundled and pre-installed. I am all for the RISC OS community helping each other, and with the best will in the world people fall out sometimes, but when people who told me to "sod off" two years ago now come knocking on my door I am less keen to help them.
  265. The other "business proposal" has been of the "investing" kind. The idea is simple they "invest" (read lend us money) and in return get some form of "return". Now again this might have been helpful two years ago when we were trying to get VirtualAcorn off the ground. However it is now off the ground, and we don't need "investment", we have managed to get this far and fund the project ourselves. So why do we need money now? Answer we don't. One particular person suggested that he would "invest" some money in exchange for some rights over VirtualAcorn, er....no. Oh and we could pay back the money with interest as well, oh and provide him with exclusive access to some of the things we are doing. Two hopes, Bob Hope and No Hope. We could have done with the investment at the start, but it wasn't forthcoming, now we don't need it people seem to think we do. Or to put it another way, now we are about to launch VirtualRPC-SE they think they might get on the bandwagon. Well they can, if they want to do one of the following:
  266. Sell their software to VirtualAcorn user
  267. Bundle VirtualAcorn with their softwar
  268. Bundle VirtualAcorn with their own hardwar
  269. Promote VirtualAcorn into areas that are not served by the current "real" machine
  270.  
  271. So that's how you get on the bandwagon; you promote RISC OS and VirtualAcorn and your own products. You get more copies of RISC OS in use, because the more copies that are used the more users there are to buy software. As for the next person to approach me with a "genuine business proposal", they will get told to depart the vicinity in the vernacular.
  272. Printing RISC World
  273. The new look of RISC World means that you will no longer get the yellow background when printing articles from RISC World. However you will still get the blue border on the left unless you turn off the printing of background images. The example below shows the print dialogue box from Fresco.
  274.  
  275. As you can see the option "No Background" is ticked. If you want to print out any of the RISC World pages and don't want to waste ink on a blue border then make sure you have clicked a similar option in your browser.
  276. Aaron Timbrell
  277.  
  278.  
  279.  
  280. ÿÿÿÿVOLUME4/ISSUE3/EDUC/INDEX.HTM Volume 4, Issue 3, The Education Column
  281.  
  282.  
  283.  
  284. The Education Column
  285. Andrew Harmsworth with the latest Education news
  286. This month I take a close look at something that has been used for many years in primary schools: MyWorld. Developer ClicSoft has been producing additional educational resources for MyWorld and Textease for a number of years now, so we take a closer look at what they have to offer. There's even a prize CD on offer to the first person to email me the correct answer to a teasing question!
  287. Stop Press! In the process of writing this article, I discover that Textease can now do bullets...
  288. Their World
  289. MyWorld has been around for years. Its beauty has always been that it is an environment for learning, rather than simply an educational program which remains limited to how it was when you first bought it.
  290. Fig. 1: MyWorld's Start-up Screen
  291. MyWorld is one of those applications that began life on the RISC OS platform, then spread its wings elsewhere. Fortunately the whole MyWorld experience is based around the DrawFile format so anything newly developed for MyWorld on the PC is of use to RISC OS users. What is even better is that Softease added a MyWorld filter to Textease some time ago, so you can even run the activities without the MyWorld application itself. That said, Textease can only run as part of the desktop, whereas MyWorld defaults to full screen, which may be less distracting for some pupils.
  292. Clicsoft
  293. According to the Clicsoft website, Clic is an acronym for "Cynhaliaeth liwgar i'r cwricwlwm" which is Welsh for "Colourful support for the curriculum" and they certainly live up to that name. In business for 4 years this month since owner Gaynor Perry retired from teaching, they are leading developers of MyWorld and Textease support screens for Primary education.
  294. It's reassuring to know that educational software you are considering purchasing has had at least some input from an established educator. Gaynor certainly brings all her years of experience to the fore in her numerous resources. Let's take a closer look.
  295. Early Years
  296. The Foundation Stage (as it is now known*) for 3-5 year olds, has four packs of screens available: sizes, colours, shapes and shadows. Clicking on the correct object, in response to a question, leads pupils on to progressively more complex tasks including biggest/smallest, shortest/tallest, highest/lowest, etc.
  297. * Being a physicist, I like to call it Key Stage Zero
  298. Key Stage One (KS1)
  299. For pupils aged 5-7 (or, as Gaynor suggests, for second-language learners) Houses and Their Contents can be looked at, as well as The Body. These tasks are more sophisticated including labelling and recognition activities where the correct response move the learner on to a new task.
  300. In addition to these, early maths support is available for counting, time-telling, addition and subtraction. As part of the science series (see below), screens for Life Processes, Physical Processes and Homes & Houses are available.
  301. Key Stage Two (KS2)
  302. The Science Series supports KS2 with the following:
  303. Humans as Organism
  304. Green Plants as Organism
  305. Living Things in their Environmen
  306. Materials and their Propertie
  307. Electricity and Powe
  308. Forces and Motio
  309.  
  310. The Science Series
  311. Drawing heavily on Gaynor's former career as a science teacher, Clic have 9 sets of screen supporting science teaching at KS1 and KS2. Let's take a look at Life Processes (biology to the rest of us) at KS1:
  312. Fig. 2: Labelling Parts of a Head
  313. Pupils can call up a list of words by clicking on the abc icon. It is then a simple matter of dragging them to the appropriate location on the screen. MyWorld has the facility to save partly-completed screens. However, in order to go back to them and continue, saved screens must be stored in the same location as the original - otherwise word lists or other linked-to pages cannot be found.
  314. One advantage of using Textease as the environment for MyWorld screens is that you can add text to the resulting image. Note my imaginative addition of my name to the completed head below (Harmsy is highlighted due to Textease's spell checker - this would not be present on printing).
  315. Fig. 3: A Fully-Labelled Head
  316. A more advanced task involves labelling parts of the body. This could even be used at KS3 or (perish the thought!) KS4 (GCSE to the rest of us) as body parts don't change their positions (other than a gradual increase in altitude):
  317. Fig. 4: Where do I put this?
  318. Clicking on the Task icon tells you what to do: move the parts to the right place, then label them. In case you're not quite sure what each image is, clicking on the body parts icon give you labelled versions:
  319. Fig. 5: What your bits are
  320. For such complex tasks, labels may be too big to fit together. In this case, MyWorld can decrease or increase the size of labels if they're dragged to the arrows in the middle. Here's a work in progress that demonstrates this rather well:
  321. Fig. 6: Getting there...
  322. Note that the text alongside the large intestine is included as part of the available information - in other words, pupils could re-use the task many times when studying the function of different body systems. Versatile, quick, easy and always a pleasing result.
  323. In Conclusion...
  324. Available in English and Welsh versions, Clicsoft have a large collection of excellent resources for Primary education. Each pack costs £30 + VAT which is very reasonable given the time and effort that is required to create them. The more complex tasks offer a wide range of uses and as such I am very pleased to be able to give the whole collection the RISC World stamp of approval.
  325.  
  326. Competition Time!
  327. Gaynor has given RISC World a copy of the RISC OS version of the MyWorld/Textease Science Series. This could be yours if you answer this simple question:
  328. What does CLIC stand for?
  329. Email your answer, together with your name and address, to: rwcomp@harmsy.freeuk.com and the first person's email to be read (amongst the hundreds of spam messages) will find the CD on its way!
  330. Contacts
  331. Clic, Bwthyn y Glyn, Nant Y Garth, Y Felinheli, Gwynedd. LL56 4Q
  332. email: 
  333. Textease Bites the Bullet
  334. Just as this article was due to go to email (rather than press, you see) I discovered something that I'd never seen in the Textease manual (and have just checked - it's not there!) - Textease can do bullets!
  335. Fig. 7: Is it me?
  336. Of course, my fiancé says that she's known about this for ages... meanwhile I've steered clear of using Textease for some worksheets for this very reason...
  337. Fig. 8: Textease's configurable bullet list
  338. Fig. 9: Textease's Bullet Playing-with Menu
  339. No prizes, but could anyone tell me what version number this feature came in? I just wish Softease would publish details of the changes they make in each new version... happy bulleting!
  340. If you have any questions or comments on the use of RISC OS computers in education, please either email education@harmsy.freeuk.com or better still join the RISC OS Education Discussion List, and air them there.
  341. Andrew Harmsworth
  342.  
  343.  
  344. ÿÿÿÿVOLUME4/ISSUE3/FILES/INDEX.HTM Volume 4, Issue 3, PC File Conversion
  345.  
  346.  
  347.  
  348. PC File Conversion
  349. Brian Pickard
  350. Part 3 Spreadsheet Files
  351.  
  352. Spreadsheets were one of the first computer applications. As a result most platforms have their 'favourite' spreadsheets programs. In the PC world Microsofts Excel, together with Lotus 123, are used extensively. RISC OS has Pipedream and Fireworkz. Pipedream reached version 4 when RISC OS was first used in the Archimedes when its name became Pipedream4 (now up to version 4.5) Originally marketed by Colton Software (as was Fireworkz) it is now sold and maintained by Abacus Training details can be found on their website at 
  353. Conversion Problems
  354.  
  355. The structure and workings of Spreadsheets make conversion between platforms rather difficult. For those of you who are not conversant with Spreadsheets I will outline their workings.
  356. Spreadsheets are like electronic Ledges, being made up of a grid of 'cells'. Each cell is known by its column (usually a letter A B etc.) and its row (numeric). So a cell four columns in and three down from the top left is at a position D3.
  357. Each cell can contain one of three types of data, ordinary text, real numbers or a formulae.
  358. In the case of a formula the answer is displayed in the cell.
  359. As spreadsheets developed, formulae became more involved and conditional statements were added.
  360. Needless to say no one had the foresight to agree any standards regarding syntax and so different spreadsheets applications use slightly differing syntax in their formulae. This makes file conversion more involved.
  361. CSV and TSV files 
  362.  
  363. You can easily port the Spreadsheet using comma separated value or tab separated value files. These are a compromise since no formulae or layout is included only the numeric, text values and the formulae/statement answers are saved. This is fine for inclusion in DTP or Presentational software where no editing is required. All Spreadsheet packages have at least one if not both of these save options, so if you know the receiver only wishes to display the actual figures and text of the spreadsheet then you can send them these files. In the PC world they have file extension csv and tsv.
  364. Porting from PC to RISC OS
  365.  
  366. The PC user will probably have either Excel or Lotus 123. Excel can save its spreadsheet in Lotus format (file extension .wks1). So ask for the spreadsheet file to be in Lotus 123 format preferably in the lowest/earliest Lotus format with the file extension .wks1.
  367. The latest PipeDream and Fireworkz versions can read this format (Pipedream has a conversion program in earlier versions it was called PD123).
  368. Remember to set the file type to &DB0 (or LotusWK1).
  369. You will need to clean up the spreadsheet since font and column/row size will not be ported across, but all the formulae should be intact and the spreadsheet can be edited.
  370. Porting from RISC OS to PC
  371.  
  372. Here we use the same common Lotus123 file format.
  373. So convert your Fireworkz/Pipedream4 file to the Lotus123 format.
  374. Remember to add to the filename the extension wks1. (If you are sending it via email as an attachment then zip archive it.) The PC user should be able to load the file into Excel and Lotus123. Again some tidying up is required.
  375. Encountered Problems
  376.  
  377. As with any file conversion there are some pitfalls.
  378. What happens if the PC user has a formulae/statement in a cell that does not have an equivalent in RISC OS?
  379. An error will be shown in the cell, which by the nature of spreadsheets can lead to more errors in other cells if this cells answer is required many times within the sheet.
  380. Try and persuade the PC user to stick to the most common formulae (SUM, AVE etc.) and stay away from exotic ones (statistical formulae etc.).
  381. Likewise when you are sending a file for a PC user do not use any linked live charts in Pipedream4.
  382. More Thoughts
  383.  
  384. The neatest way of conversion as always is to try and find an application which has both PC and RISC OS versions.
  385. Fireworkz is such an application, so if your PC user and yourself buy the correct version of Fireworkz then you should have no problems!
  386. Microsofts Excel allows for multiple sheets within one file with one sheet referring to any other. This structure cannot be ported across.
  387. Similarly columns and rows can be hidden from view in Excel (I do not know if this is possible in Lotus) again this can cause problems, they will probably not be hidden in the ported version.
  388. If the PC user has Fireworkz and you have Pipedream then you can use Harriet Bazleys FirePipe utility which will convert FireWorkz files to Pipedream files. This free utility can be found at 
  389. And Finally
  390.  
  391. Spreadsheet porting is possible between other operating systems since UNIX and MACs have Lotus variations. I have never been asked by anyone using these OSs for any spreadsheet files so I do not know if it is possible, but in theory if you convert your Spreadsheet to the Lotus format then this could be ported to UNIX and MACs.
  392. If any of you have a Z88 computer then you will know Pipedream. Again I do not know if this version will produce files which can be loaded by Pipedream4 or vice versa.
  393. All in all porting Spreadsheets between different platforms is not as difficult as might be expected. Perhaps the length of time Spreadsheets have been used as slowly resulted in some sort of common/converging standard.
  394. Anyway thats it for Spreadsheets next time I will open a different can of worms and try and tackle Multi media file formats. .
  395. I have included some example spreadsheet files. These are the same sheet but in the differing file type. Its name gives the file type. I do not have FireWorkz but have used Resultz to convert the Pipedream4 files to Lotus. Using this method seems to be fine except in the If statement the text has an extra ".
  396.  
  397. Brian Pickard
  398.  
  399. ÿÿÿÿVOLUME4/ISSUE3/FOOTBALL/INDEX.HTM Volume 4, Issue 3, Football Manager
  400.  
  401.  
  402.  
  403. Football Manager
  404. Part 6 of Paul Johnsons series
  405. What goes for one, goes for all
  406. C++ has amongst it's armoury some really powerful programming facilities, one of them being that of inheritance.
  407. Simply put, this can be thought of as a common set of properties. It is best described as an "is a" relationship. The simplest demonstration of this is that of cars and lorries.
  408. Say we wanted a base class (that is a fundamental class) which has the common properties of both lorries and cars, we need a class name. First off, is a car a lorry? Obviously not and the reverse is also true, so we need to something which is common to both. Quite simply, they are both vehicles. That is, they both satisfy the "is test" (a car is a vehicle, a lorry is a vehicle).
  409. Next up, draw up a list of properties available to both cars and lorries. These will be (say) number of wheels, fuel type and number of people it can hold. All of these can be in the base class (called vehicle).
  410. We then define attributes which only apply to cars and lorries (say cargo type and what side drive the steering wheel is for the lorry and number of passengers and fuel type for the car). The classes look like this:
  411. class vehicle
  412.  
  413.   public 
  414.      vehicle() {}
  415.      virtual ~vehicle() {}
  416.      int set_no_wheels(int)
  417.      int set_no_people(int)
  418.     virtual void show_all()
  419.   protected
  420.      int noWheels
  421.      int noPeople
  422. }
  423. &bnsp
  424. class car : public vehicl
  425.  
  426.    public
  427.       car() {}
  428.       virtual ~car() {}
  429.       int set_no_passengers(int x)
  430.         {x > noPeople ? return -1 : passengers = x;}
  431.       bool set_fuel_type(bool)
  432.       virtual void show_all()
  433.    private
  434.       int passengers
  435.       bool fuel_type
  436. }
  437. &bnsp
  438. class lorry : public vehicl
  439.  
  440.    public
  441.      lorry() {}
  442.      virtual ~lorry() {}
  443.      int set_cargo_type(int)
  444.      bool set_hand_drive(bool)
  445.      virtual void show_all()
  446.    private
  447.      int cargo_type
  448.      bool driver_side
  449. };
  450. Okay, some parts need explaining. Most of it is self explanatory though
  451. Protected:
  452.  
  453. This means that the classes which inherit the base class have access to this variable, but cannot change it.
  454.      virtual~
  455. All inherited destructors have to be used as virtual destructors
  456.      virtual void show_all();
  457. This is a special method. Not only would void car::show_all() display the members of the car class (if that is what you wanted), but also those of the vehicle class. This can be really useful as it can save a pile of time, we don't need to re-write the same code every time. It is a virtual method as it is created at runtime. Think about it, if your own class has a method called foo and you inherit a class with another method called foo then the compiler will throw a wobbler!
  458. Applying this to the task in hand
  459. We need a base class. In this case we need to think what the base class will be. A player is not a team, a manager is not a team, the list can go on, so let's take it from another angle. A player is a member of a team. A team will have a certain number of staff as well as other attributes (money, statistics and the such). A team is a member of a league.
  460. We can start with a league class. This will contain a small number of items, league number, top three and bottom three teams and a couple of methods which calculate the team positions and also display the league tables.
  461. Each team will have a number of players which are a lore unto themselves (and therefore a class of their own), but the team has a manager, cash flow and stats. The players belong to a team and have a value, fitness levels, skill and if they're injured or not.
  462. So, lets put some flesh onto these bones, these will change as the code is developed.
  463. class leagu
  464.  
  465.   public
  466.      league() {}
  467.      virtual ~league() {}
  468.      int league_division() {return division;
  469.      virtual void display_league()
  470.      void setup_league()
  471.      void next_game()
  472.      void calculate_league()
  473.    protected
  474.      int division
  475. }
  476. &NBSP
  477. class teams : public leagu
  478.  
  479.   public
  480.      teams() {}
  481.      virtual ~teams() {}
  482.      virtual void display_team(int)
  483.      void display_stats()
  484.      double return_money() {return cash;
  485.      int return_skilllevel() {return skill;
  486.   private
  487.      int team_no
  488.      int skill
  489.      double cash
  490. }
  491. &NBSP
  492. class players : public team
  493.  
  494.   public
  495.      players() {}
  496.      virtual ~players() {}
  497.      virtual void display_team(int)
  498.      int is_player_injured(int)
  499.      void set_player_injured(int)
  500.      void setup_team(int)
  501.   private
  502. };
  503. Okay, I've started to flesh out the program on how the class system will look. What I've not said is how the data will be stored. That's for next time when I'll look into linked lists vs the standard template library.
  504. Paul Johnson
  505.  
  506.  
  507. ÿÿÿÿVOLUME4/ISSUE3/GAMES/INDEX.HTM Volume 4, Issue 3, Games World
  508.  
  509.  
  510.  
  511.  
  512. Games World
  513. Paul Brett with the latest gaming news.
  514. As I am sure keen RISC World readers will remember last issue I said that we would be having a look at a number of games co-ported by Peter Naulls and Neil White. I have not included all the games this issue as it has been pointed out to me that if we do put all the games on the RISC World CD then no one will visit Neil White's website at 
  515. Dumbbell
  516. You control a constantly moving dot. You can change the dot's direction, making it move up, down, left, or right, although you cannot turn around 180 degrees. As the dot moves, it leaves behind a trail of slime, forming lines or, if you make enough turns, more complex designs. Any contact with the slime trail will be fatal, so you must be careful to avoid it.
  517.  
  518. Avoiding the slime trail is possible thanks to dumbbells. At any particular time, there is one dumbbell in a random location on the screen. When the dot comes in contact with the dumbbell, the dumbbell will be erased and a new one will appear in another random location. Meanwhile, the dumbbell will have cleaned up all slime within a small square around it. In this way, dumbbells can make gaps in the slime trail, allowing you to move around more freely.
  519. It is allowable to go off the screen on any side; you will come back on the opposite side. Games of Dumbbell are scored by how long you survive and how many dumbbells you manage to get. You receive 1 point every time the dot moves in any direction, and 1,000 points for each dumbbell collected.
  520. The cursor keys cause the dot to move in their respective directions. The Spacebar key pauses the game; another press of Space will un-pause it. You ma
  521. end a game at any time by pressing Escape. When you die, the display will freeze, with nothing happening. Press Space to see your score, then Space again to exit.
  522. NasterMind
  523. The objective of the game is to guess the secret code just like in MasterMind. Depending on your guess you will be told a couple of things, a white peg means that one of your choices is the correct colour, just in the wrong spot. A black peg says that one of your choices is both the correct colour, and in the correct spot. The location of the peg has no connection with the location of the correct choice.
  524.  
  525. Click on a colour to choose it, and then click on the position you want to place your coloured square. Then all you have to do is click on the "Make Guess" button. The computer will then check your guess and provide hints using the coloured pins mentioned above.
  526. SuperTux
  527. SuperTux is a game similar to Nintendos "Super Mario Bros."(tm) Run and jump through multiple worlds, fighting off enemies by jumping on them or bumping them from below. Grab power-ups and Linux distributions on the way.
  528.  
  529. The Story
  530.  
  531. Tux and Gown are having a picnic in Antarctica, when suddenly Gown is abducted!  Tux must follow the path of clues across the globe to find his girlfriend and save her!
  532.  
  533. Controls
  534.  
  535. The controls are:
  536. Space to start the gam
  537. Cursor left - go lef
  538. Cursor right - go righ
  539. Cursor up - jum
  540. Cursor down - duc
  541. Control - fir
  542.  
  543. Scoring
  544.  
  545. If you get more than one enemy at a time without landing on the ground, each enemy is worth more points.  For example, if there are three in a row and you jump on the first, it's worth 50 points.  If you bounce off the first and onto the second, it's worth 100 points.  If you also get the third, it's worth 150 points.
  546. PowerUps
  547.  
  548. There are a number of power-ups to collect, including cups of coffee and more. Also some power ups let you fire at the enemies>
  549. Signing off
  550. That is it for this GamesWorld. I don't know if GamesWorld will be back next issue, if there is some gaming news I will be sure to report it, but it look like the next couple of months may be quiet on the gaming front.
  551. Paul Brett
  552.  
  553.  
  554.  
  555. ÿÿÿÿVOLUME4/ISSUE3/HUGHJ/INDEX.HTM Volume 4, Issue 3, The Hugh Jampton Experience
  556.  
  557.  
  558.  
  559. The Hugh Jampton Experience
  560. Yes, live from inside David Blains' sleeping bag....it's.......Hugh Jampton!!!!!
  561. Phew! What a whiff, oi, stop shaking the box! Anyway yes here I am again to round off yet another RISC World with more laughter packed rubbish.
  562. Last issues caption competition
  563. Last issue we had this as the photo for the caption competition ....
  564.  
  565. Well we didn't get just 10 entries, or 20 or even 30, no we got one, one measly entry! Here I am slaving away for 15 minutes every two months writing this column (surely rubbish? - ED) and you can't even be bothered to enter, all of you can see me after class. Well all of you except Ian Semple who came up with this...
  566. Are you sure? So, this is not a computer simulation!!!
  567. So Ian can go to the top of the class and gets a gold star, which will be very handy if he ever gets a job in McDonalds.
  568. This months Caption Competition
  569. Perhaps we might get some entries for this picture?
  570.  
  571. Send your entries to HughJ@riscworld.co.uk and we will print the cleanest ones. Any complaints should be sent here.
  572. This months collection of vaguely amusing images has an advertising feel to it. Expect for a new logo for my favourite game show. Apart from the Welsh version of The Weakest Link, called The Weakest Leak.
  573.  
  574. Yes, but of course no evening is complete without a good dinner.
  575.  
  576. Ah, something else that comes in handy for a pleasant evening.
  577.  
  578. And if that doesn't work you could always stay at home.
  579.  
  580. Although you might need to pop down the shops for a few essentials.
  581.  
  582. But at least you know that when you come back there will be some TV to watch.
  583.  
  584. Mind you if you spend too long in front of the TV this might come in handy.
  585.  
  586. Of course some people just prefer an early night...
  587.  
  588. Until next time
  589. Well that is another £50 for old rope, I would buy something more useful with the money but I have simple tastes.
  590. Hugh Jampton
  591.  
  592. ÿÿÿÿVOLUME4/ISSUE3/IMAGEPXY/INDEX.HTM Volume 4, Issue 3, ImagePrxy
  593.  
  594.  
  595.  
  596. ImagePrxy
  597. Andrew Harmsworth reviews ImagePrxy, a Cache for Oregano
  598. I have owned Oregano 1.10js for some time now. In fact, I bought it when Oregano 2 was announced as "imminent". Unfortunately that was some years ago, and whilst it worked well, it lacked a cache and was slower than Fresco. Its one huge advantage for me was that Fresco would crash my RiscPC at least once a week, regularly leaving me to resort to DiscKnight to repair my hard disc.
  599. Even though at the time I was using Oregano over a fast network connected to my home, the lack of cache irritated me. For one thing, even saving images out in their original format requires Oregano to re-fetch them. I finally gave in and bought ImagePrxy, as it sounded just the ticket and it didn't seem as if Oregano was going to be updated anytime soon (it wasn't).
  600. ImagePrxy is first installed inside Oregano, and on loading the browser, sits alongside it on the iconbar:
  601. Fig. 1. Oregano and the ImagePrxy Cache (left icon)
  602. Personally I would prefer for it to be fully-integrated, but that's a minor point. The program does install inside Oregano (in a sub-directory called Cache) but I surmise that adding a "Cache Choices" to Oregano's menu would involve altering Oregano itself.
  603. Developer Image Software has created a number of add-ons for Oregano over the years. Nutmeg is the basic cache, whereas ImagePrxy is more sophisticated. Somethings called Cassia and Paprika also exist, but there is no information on these on the Image Software website.
  604. Fig. 2. A Proxy server with HTTP cache
  605. Features
  606. ImagePrxy is more than just a cache - as its name implies, it is a capable proxy server (for the unenlightened, browsers can point to it to request file fetches either locally or over a network from other machines). Its iconbar menu pulls up as follows:
  607. Fig. 3. ImagePrxy's Iconbar Menu
  608. Let's run through these features one at a time.
  609. Cache Options
  610. As one would expect, the ability to store files that have been fetched to your machine is catered for. These can either be kept until the program quits, or files over a certain age can be removed from the cache on quitting. Either of these takes considerable time, and the whole process can lead to a significant increase in the time taken for a CTRL-F12 to put you in the position to power-down for the night.
  611. Fig. 4. ImagePrxy's Cache Options
  612. The "Use Memory for Caching" option (described as a turbo mode in the manual) does significantly improve its performance in use. The downside is that shutting down involves dumping more files to disc than normal.
  613. Site Saver
  614. This is a superb feature, especially as that to do so in Fresco involved the purchase of a site saving utility, the name of which is lost in the mists of time. Unfortunately, it is incredibly slow as the first thing it does is to run through all the sites in its cache, in order to build up a file list.
  615. Fig. 5. ImagePrxy's Site Saver
  616. You then select what you want from the list, which also has subdirectories (helpful if you regularly visit sites such as BBC News, and want to save something specific). This feature works really well, and although it is slow to initialise (depending on the number of sites in your cache) the output is perfect, with every image present on saved pages.
  617. Filters
  618. This is undocumented and a work in progress but would offer the ability to block access to selected sites. ImagePrxy also has the ability to stop other machines (via their unique IP address) on your network from accessing the web through it. Nice touch.
  619. External Proxies
  620. The ability to point internet applications at network servers - proxies - that allow access to the web, ftp, email etc, is vitally important. Yet numerous RISC OS tools fail to offer this facility. ImagePrxy not only offers the ability to select one network proxy, but can store an entire list of them for you: neat. Proxying works well for HTTP, and is reputed to work with secure HTTPS transactions.
  621. Fig. 6. ImagePrxy's External Proxies Feature
  622. I was unable to get https-proxying to work properly over our network. Furthermore, using my modem, connecting to Nationwide Online Banking puts me in an infinite loop "your session has expired... click here to login again". For some reason, clicking here merely reloads the page from the cache, and no amount of hitting reload bypasses the out of date session. The solution is to turn off https caching from Oregano's menu. ImageSoft tell me that this problem is probably due to Nationwide's server not properly downgrading for HTTP 1.0 clients. Ah well, at least Oregano copes with it on its own...
  623. History List
  624. A history list is accessible, and is remembered on restarting the application (even after a reboot). Oregano's inability to remember your history has always annoyed me, so this feature is a real boon. The history does appear, however, to be generated on the fly by looking at the cache: one would normally expect this to be instant.
  625. As with the site saver facility, the history list appears in the order in which you have accessed the sites. Wouldn't it be wonderful if it could list your history on a day-to-day or week-by-week basis? There are some things Internet Explorer does do really well...
  626. Problems
  627. ImagePrxy is not the fastest program in the world, even on a StrongARM RiscPC. Looking into the !Oregano.Cache directory, the fact that it is uncompiled BASIC may have something to do with this.
  628. Here's another story - one day I decided to run Martin Avison's Task Usage program, as something was causing problems for another application. Sadly it would seem that ImagePrxy (which reports itself as Nutmeg) was at fault:
  629. Fig. 7. ImagePrxy's Task Usage (Idle!)
  630. Don't get me wrong, I'm no RISC OS programming expert, but using 80% of the processor when sat idle doesn't strike me as efficient. Perhaps someone could point out what it's doing wrong?
  631. Certain websites would cause ImagePrxy to crash with an "at line" BASIC error. So annoying was this that I had to resort to bypassing the cache altogether from Oregano... not what you want to have to do. This only happened when using it through a network proxy, and I have had no such problems when using a dial-up connection.
  632. Oregano 2
  633. I have yet to purchase Oregano 2. I guess I just don't use the web at home as much as I do at work. However, the demo appears capable of working through ImagePrxy by pointing its proxy setting at 127.0.0.1:8080 (as is done with Oregano 1) so the fact that the newer browser still lacks a cache is less annoying than it would otherwise be (a retrograde move would be unwelcome).
  634. Oregano 2 is significantly faster than its predecessor - at fetching and rendering - so it's an upgrade I may be tempted to make sometime soon. Darren Windsor, author of ImagePrxy, told me that he may release a new version of Nutmeg (et al) for Oregano 2 if there is sufficient demand. Apparently Oregano 2 uses persistent connections which ImagePrxy can proxy, but not cache, so a complete re-write would be necessary to bring a cache (that won't crash) to Oregano 2. Wouldn't it be nice if things just worked?
  635. Summing Up
  636. On the whole I have been delighted with the additional features that the program offers to Oregano 1. It does make web browsing faster, especially when revisiting sites on a regular basis, and performs best through a modem. Whilst the program has its faults, these are far outweighed by its numerous benefits and I would recommend it to anyone who has Oregano 1 and wants to improve its functionality without wishing to fork out on Oregano 2.
  637. Product details
  638. Product:
  639. ImagePrx
  640. Supplier:
  641. Image Softwar
  642. Price:
  643. Subscription at £39.99 inclusiv
  644. Address:
  645. 48 Hinchcliffe Road, Poole, Dorset, BH15 4E
  646. Tel:
  647. 01202 26972
  648. Fax:
  649. 01202 24526
  650. WWW:
  651. E-mail:
  652.  
  653. Andrew Harmsworth
  654.  
  655. ÿÿÿÿVOLUME4/ISSUE3/LETTERS/INDEX.HTM Volume 4, Issue 3, Letters Page
  656.  
  657.  
  658.  
  659.  
  660. Letters Page
  661. It's gone very quiet...then suddenly...nothing happens
  662. Normally I kick off a letters page with last issue's mistakes. Indeed keen readers may remember that last issue I said "Still one day we will have an error free RISC World, it just seems as though that day will be a long time in the future." Well perhaps not that far in the future as we didn't get a single mistake pointed out in the last issue. I have to stress that this doesn't mean that there weren't mistakes, just that no one spotted them!
  663. The mail bag this month is very light, perhaps due to the rather nice summer weather we have been having, or perhaps it is due to the new draconian AOL anti spam "features" which "prevent" spam by blocking all e-mails regardless of their content. Still let us see what we do have this issue.
  664. Dear Aaron,
  665.  
  666. You've griped about your car in RW on at least one occasion. I have cause for complaint this month, too!
  667.  
  668. I ordered a Honda Civic IMA (petrol-electric hybrid) 12 days ago. Honda Kettering assured me it wouldn't be ready until mid-September. So, I've planned around financing it, getting it insured, and selling my Rover 114GSI (anyone want it? R-reg, 38k, 5 doors, etc.) on that schedule.
  669.  
  670. They said they'd ring in a week to confirm delivery. A week being 5 days ago now, I phoned them today (1st September). "It'll be arriving here tomorrow, sir.". Bloody Japanese efficiency, coupled with English incompetence!
  671.  
  672. Cheers
  673. Andrew Harmsworth
  674. Yes, well if anyone does want a Rover 114 (It's a Metro - HJ) then contact Andrew, you can get his e-mail address from the bottom of the Education column. As for the English vs the Japanese, remember we design the stuff, bugger it up a treat, then the Japanese go and build it properly and clean up. Mind you then the Chinese and the Koreans come along and build it just as well for half the price and so they clean up. I am just waiting to see what happens when the Russians get their act together, that should be very interesting, Zaporojetz Turbo anyone?
  675. And now another regular on the letters page, VirtualAcorn plugging corner....
  676. Dear Editor
  677.  
  678. Following Dave Holden's feature in vol 4 issue 2, and at the risk of repeating what I have already written on Drobe, I should like to reinforce Dave's plea for a high-end emulator such as Alpha to become more generally available.
  679.  
  680. At the school where I am Consultant there are 122 RiscPC's - 40 Kinetics and 82 StrongArm/OS4/64MB machines. In other words, every 48th OS4 machine is one of mine. They are immensely popular, in use late into the night 7 days a week (it's a boarding school) but they are aging.
  681.  
  682. I could not possibly justify upwards of 150,000 pounds to replace them with Iyonixes. Not just that; Ovation Pro is infinitely preferred to Word, but internet is crucial, and there is still no adequate RISC OS browser.
  683.  
  684. I have to conclude that unless a Virtual RiscPC becomes available, and not too far into the future, this site will be lost to RISC OS. Incidentally, several pupils now have their own Alphas.
  685.  
  686. Best wishes
  687.  
  688. Martin Devon
  689.  
  690. ICT Consultant Stonar School
  691. Well then you are in luck, because VirtualRPC-SE is now available as a stand alone product and is shipping as we speak. For more details don't forget to check out 
  692. Hi,
  693.  
  694. After subscribing to Acorn User for around 15 months and feeling that they'd lost the plot along the way, I decided to give RISC World a try.
  695.  
  696. What a treat when APDL delivered my first discs (yes, I decided to embark upon the special offer and take the previous 3 years worth as well as the first issue of volume 4).  I like the format of the CD, even though it's not a magazine to read, I find it consistent and well presented.
  697.  
  698. However (there's always one of those, isn't there!), I find myself in the realms of some of the PC CD's, where they offer free software that simply just doesn't run on your machine - do you ever get round to testing this, or do you assume it's going to run?
  699.  
  700. I was particularly interested in TableCalc and must say that it meets my criteria exactly as regards work I do with Ovation Pro, you don't even have to save it as a Draw file, just drag and drop the TableCalc file into Ovation Pro and hey presto! Full marks for TableCalc.
  701.  
  702. DrawWorks Millenium is something different, there are quite a few  functions that simply just don't work, the merge tool for one, is this intentional?
  703.  
  704. Several of the games across the 4 discs don't function. Wouldn't if be worthwhile trying the software out and letting us know what features have been disabled, etc.
  705.  
  706. Yours, somewhat bemused (only with the non-working software),
  707.  
  708. Bryan Page
  709. It is always nice to welcome more new readers, especially ones that start their letters with compliments! When we have software on the CD it will be the full versions, unless it is specifically marked as a demo. One of the early decisions made when I took over RISC World was that we would carry a full commercial software product on each issue. Why? Well because demos annoy the hell out of me. If I get a bit of software I want to be able to use it fully. So I applied the same critea I use when buying a magazine to editing one. DrawWorks is a full working version and the Merge tool does work, however the usual problem people have with it is either not selecting two objects, or selecting one object consisting of text that has not been converted to a path (later versions of DrawWorks automatically work out when text should be converted to path for for). To check the merge tool draw two over lapping rectangles, select them both and click on merge.
  710. We do test all the cover software on a wide range of machines but that does not mean they are going to work on all machines, especially if the machines have not been kept up to date with the latest patches. If you are running a RISC OS 3 or 4 machine then you really should get the latest stuff from 
  711. And finally a suggestion for an improvement to one of last issue articles...
  712. Hi,
  713.  
  714. Having read the article in the current issue about improving the RISC OS video by fitting a heatsink may I make a suggestion. The photo shows the heat sink with its fins running north south, if they were running east west then the fan from the power supply would cool them much better, have a look and see what you think.
  715.  
  716. Kevin Simpson
  717.  
  718.  
  719. The completed heatsink
  720. Yes I think you may well be right about this one, I hadn't noticed this, so if are fitting a heatsink fit the fins so they run across the machine and not from front to back.
  721. That's it for this issues letters page. Why not write in, go on you know you want to...
  722. Aaron Timbrell
  723.  
  724.  
  725.  
  726. ÿÿÿÿVOLUME4/ISSUE3/MAKEMODES/INDEX.HTM Volume 4, Issue 3, MakeModes
  727.  
  728.  
  729.  
  730. MakeModes
  731. Acorn Computers 1994
  732. MakeModes Manual
  733. Date: 22-Aug-1994
  734.  
  735. Issue:  1.00
  736.  
  737. Author: Dean Murphy
  738.  
  739. Copyright © 1994 Acorn Computers Limited.
  740. Every effort has been made to ensure that the information in this document is true and correct at the time of printing. However, the products described in this leaflet are subject to continuous development and improvements and Acorn Computers Limited reserves the right to change its specifications at any time. Acorn Computers Limited cannot accept liability for any loss or damage arising from the use of any information or particulars in this leaflet. ACORN, ECONET and ARCHIMEDES are trademarks of Acorn Computers Limited.
  741. Introduction
  742.  
  743. MakeModes is a tool used to generate and edit Risc PC monitor definition files (MDFs). Before using  the MakeModes application, you should take the time to read the application note 'Creating monitor definition files for the Risc PC' (available upon request from Acorn Customer Services).
  744. Overview
  745.  
  746. The process for creating and saving a monitor definition file can be summarised as follows;
  747. Load MakeModes
  748. Click on the MakeModes icon
  749. Click on the 'Monitor title' menu icon and select the appropriate monitor from the list. If your monitor is not included in the list, enter the correct values and click on 'Generate'
  750. Save the generated mode file to disc
  751.  
  752. Creating a Monitor definition file
  753.  
  754. Start MakeModes in a similar way to other RISC OS applications, by double-clicking on its application icon. When it has loaded, it will install itself on the iconbar
  755. Click on the MakeModes icon, this will open the 'Generate MDF' window.
  756. Choose a monitor by clicking on the 'Monitor title' menu icon and selecting the appropriate monitor from the list. If the monitor for which you are generating a set of modes is not in the list you can enter your own set of values into the writable icons
  757.  
  758. If you do wish to use a new set of values, please ensure that the following information is correct:
  759. Monitor type
  760. The different types are listed below:
  761. 050Hz TV Standard colour or monochrome monitor
  762. Multiscan monitor
  763. Hi-Res 64Hz monochrome monitor
  764. VGA-type monitor
  765. Super-VGA-type monitor
  766. LCD (Liquid crystal display)
  767.  
  768. Line rate (min and max)type
  769. The minimum and maximum line rates for you monitor are specified in Hz. This information can usually be found in your monitor's manual.
  770. Frame rate (min and max)type
  771. The minimum and maximum frame rates are specified in Hz. This information can usually be found in your monitor's manual.
  772. Now click on 'Generate'. If the monitor that you have chosen is not recognised by MakeModes, or values that you have entered do not make sense e.g. minimum value greater than the maximum value, you will get either of the following warnings:
  773. 'Do you wish to add this monitor to the monitor list?'.
  774. or
  775. 'Nonsensical line and/or frame rate values.'.
  776. If you do wish to add the monitor to MakeModes monitor list, click on 'Yes', MakeModes will update its MonList file with the new monitor information.
  777. If at any stage, you want to remove a monitor from the list, load the MonList file (which can be found inside the !MakeModes directory) into a text editor such as !Edit and delete the appropriate line from the file.
  778. MakeModes will now select all the modes that are suitable for use with your chosen type of monitor and open the main display window.
  779. Using the MakeModes main menu (click MENU over the main display window) save the generated MDF to disc.
  780. Loading a previously created Monitor definition file
  781.  
  782. To load a previously created monitor definition file into MakeModes, simply drag the file to the  MakeModes icon on the icon bar. The title field of an MDF usually holds the name of the monitor for  which the file was created. When MakeModes loads an MDF, it checks this name against its own list of  monitors which it knows about. If it finds a match, that monitor's details are used to check the validity of the modes in the mode file. If a match is not found, MakeModes will display a message prompting you  to select an appropriate monitor from its stored list. You can do this by clicking on the 'Monitor details' menu icon and selecting the monitor from the list displayed.
  783. Using the main display window
  784.  
  785. The main display window consists of six distinct areas:
  786. File info
  787. Mode Info
  788. Screen RAM
  789. General Info
  790. Mode timings
  791. Timing diagnostics
  792.  
  793. We shall deal with each of these areas in turn.
  794. File info
  795.  
  796. This area displays information specific to the mode definition file as a whole.
  797.  
  798. The following DPMS states can be used:
  799. DPMS disabled - screen blank just blanks video
  800. Screen blank enters 'Stand-by' mode
  801. Screen blank enters 'Suspend' mode
  802. Screen blank enters 'Off' mode
  803.  
  804. Mode info
  805.  
  806. This area displays information on the currently selected mode. To see a list of the modes available, click on the 'Current mode' menu icon and select a mode from the list. Although it is possible to give screen modes different textual name's e.g. 'DTP Mode', the modes are listed in the menu by their resolution and frame rates e.g. 800 x 600 (60 Hz).
  807. When you have selected a screen mode from the list, the mode info area will be updated accordingly.
  808.  
  809. One of the main items that you will want to edit in this window is the 'Pixel rate'. By altering the pixel rate, it is possible to increase or decrease the Frame rate for a given mode. Please note though that increasing the pixel rate will also increase the line rate and bandwidth required.
  810. You can alter the 'sync polarity' using the arrow icons. The possible values for the sync polarity are as follows:
  811. hsync normal, vsync normal
  812. hsync inverted, vsync normal
  813. hsync normal, vsync inverted
  814. hsync inverted, vsync inverted
  815.  
  816. When MakeModes creates a new screen mode, the name it uses for that screen mode is derived from its resolution and frame rate. You can give any screen mode a new name using the 'Name' icon. To do this,  simply type a new name into the 'Name' writable icon and press Return. If you do not want the mode to appear in the Display Manager's mode list, simply ensure that the option icon beside the Name icon is not ticked.
  817. Screen RAM
  818.  
  819. When MakeModes is loaded, the amount of VRAM present in the machine is shown in the Screen RAM area of the main display window:
  820. The amount of VRAM available dictates the machine's video bandwidth limits. The more VRAM  available, the higher the bandwidth. If a screen mode exceeds this bandwidth limit, the Display Manager  will refuse to allow the mode to be used. To help prevent this happening, MakeModes will inform you if  this limit has been exceeded by turning the 'Bandwidth' field (see the General info section later in this  document) red.
  821. If you wish to check that a mode will work on a machine with a different amount VRAM, click on one of the VRAM icons in the 'Screen RAM' area.
  822. Clicking on one of the VRAM icons will set the amount of VRAM that MakeModes believes is available. Doing this will also update the information in the 'General info' area i.e. the 'Memory' and 'Bandwidth' fields.
  823. General info
  824.  
  825. The General info area of the main display window shows mode diagnostic information.
  826.  
  827. The number of bits per pixel (bpp) selected is shown in the 'Bits per pixel' icon. This number can be changed by clicking on the Bits per pixel menu icon and selecting a new value from the menu. The bpp  setting affects the screen memory and bandwidth calculations e.g. an 800 x 600 screen mode in 8 bpp (256 colours) takes 468K of screen memory and has a required bandwidth of 36MB/sec. The same mode in 32bpp (16 Million colours) takes 1875K of screen memory and has a required bandwidth of 144MB/ sec. If the memory or bandwidth fields turn red, the limits have been exceeded. That mode will not work  at the selected pixel depth. For more information on pixel depths, please refer to the 'Creating mode definition files for the Risc PC' application note.
  828. Mode timings
  829.  
  830. The 'Mode timings' area of the main display window is used to alter the horizontal and vertical timings  for the selected mode. The timings values can be updated by using either the arrow icons or by clicking on one of the writable icons and typing the new value.
  831.  
  832. As timing values are altered, MakeModes will recalculate the Pixel, Frame and Line rates automatically. If any of the timing values are incorrect, MakeModes will show the changes that need to  be made in the Timings diagnostics area.
  833. NOTE: Because the 'Memory' and 'Bandwidth' values are not updated automatically, you must click on one of the VRAM icons when changes have been made to the Pixel rate or the mode timings.
  834. When you are happy with your mode timings, you may wish to centre the picture on screen. This can be done by increasing or decreasing the 'porch' and 'border' values. If the 'Keep porch and border' totals  icon is ticked MakeModes will retain the overall totals by subtracting or adding the same amount to the opposite porch or border. e.g. increasing the Left border by 12 will decrease the Right border by 12. This option only works when the arrow icons are used to alter the timing values.
  835. The iconbar icon
  836.  
  837. The iconbar icon responds to the mouse in the following ways:
  838. Clicking Select on the icon opens the 'Generate MDF' window if no MDFs are currently being edited. If an MDF is being edited, clicking Select on the icon will bring the main window to the front of the window stack
  839. Clicking Menu on the icon opens the MakeModes menu
  840. Clicking Adjust on the icon has no effect
  841. Dragging an MDF to the icon will load the MDF if no modefile is currently being edited
  842.  
  843. The MakeModes icon bar menu
  844.  
  845. Info displays the 'Program Info' dialogue box
  846. VESA selects VESA standard mode timings
  847. Quit exits the program. When you quit the application, a warning box may be opened if there is any unsaved data
  848. Clicking on Discard will discard any unsaved data
  849. Clicking on Cancel will cancel the request to quit the application
  850. Clicking on Save will open the normal RISC OS Save as dialogue box allowing you to save your data
  851.  
  852. The MakeModes main menu
  853.  
  854. Save MDF leads to a 'Save As' dialogue box that will allow you to save your MDF to disc or to another application using the normal RISC OS method.
  855. Generate list leads to a 'Save As' dialogue box. This option will allow you to save a list of modes that are  present in the current MDF. This list is saved in TAB separated plain text format that can be loaded into any text editor or desktop publisher.
  856. Monitor info leads to the monitor info dialogue box. The Window info dialogue box displays information on the currently selected monitor.
  857. New mode will make a copy of the currently selected mode. If you are intending to generate a  completely new mode, it is always a good idea to choose an existing mode that most closely matches the mode that you wish to create.
  858. Delete mode will delete the currently selected mode. This operation cannot be undone.
  859. Comments will send any comments that were found in the current MDF to a text editor such as !Edit where they can be edited and dragged back to the 'Comments' icon in the main display window for inclusion in the saved MDF.
  860. Disclaimer
  861.  
  862. The software is provided "as is"; Acorn Computers Limited ("Acorn") makes no warranty, express or  implied, of the merchantability of this software or its fitness for any particular purpose. In no  circumstance shall Acorn be liable for any damage, loss of profits, or any indirect or consequential loss arising out of the use of this software or inability to use this software, even if Acorn has been advised of the possibility of such loss.
  863. Acorn are unable to provide any support for this utility.
  864. Acorn Computers 1994
  865.  
  866. ÿÿÿÿVOLUME4/ISSUE3/PAYPAL/INDEX.HTM Volume 4, Issue 3, Using PayPal
  867.  
  868.  
  869.  
  870. Using PayPal
  871. Mike Battersby
  872. If you are a regular reader of RISC World then you may have been following the series on using eBay the online auction site. One of the main features about eBay is that it brings together buyers and sellers from around the world.
  873. However, if you are selling to another part of the world or buying from abroad there is always the question of payment.
  874. Sending a money order in a foreign currency tends to be expensive, plus there is the cost of postage and the chance of it going astray in the post. You also have to wait for a while before receiving it, or the recipient receiving one you sent. An electronic transfer saves on the trouble with postage but is likely to be slightly more expensive and you may need to know all sorts of bank details such as the Swift code. There also tends to be a delay before it is cleared.
  875. Enter Paypal, whereby you can use a credit card to pay instantly to another Paypal registered user, and if they are not registered you can still send the money and they will get an email telling them they have money owing which should be a sufficient incentive for them to register. Hence a lot of time can be saved as there need be no delay between making payment and the recipient having it show up in their account.
  876. While Paypal is now owned by eBay it can be used for all sorts of payments, not just online auctions. Just last week I ordered an evaporator thermistor (a what?) for a Hotpoint fridge as we cannot get Hotpoint spares here in NZ.  I ordered on the Saturday (from Milton Keynes, and paid instantly via Paypal) and it arrived in the post first thing Wednesday.  Quite how it managed that I don't know as I would have expected it to take longer than that to get to our previous home in Hertfordshire. However if I had had to send a cheque by post it would have added a week to 10 days to the transaction time.
  877. This article then, takes you through the basics of Paypal as one means of making international payments with relative ease. No visits to the bank, nothing to post and instant transference between accounts, but at a price of a commission charge.
  878. Firstly you must register with Paypal. To do this go to 
  879. Once registered you can make payments to other people's Paypal accounts or receive money into your account.
  880. Sending Money
  881. To send money, log on and choose the Send Money tab.  The form shown below appears.
  882.  
  883. In the screenshot shown the currency menu lists the currencies available to remit money i.e. US dollars, Canadian dollars, Euros, pounds or yen. Account holders have to hold money in their account or send or receive money in these currencies but can withdraw from their Paypal account into any currency. For example, if the Paypal user's account is in US dollars but has a nominated Australian bank account the money can be withdrawn into that account and credited in Australian dollars. The exchange rate that is used is Paypal's published rate at the time.
  884. Once the details are entered and checked then the payment can be confirmed or cancelled.  Once confirmed then money is transferred to the recipient's account and each party is emailed confirmation of the transaction. If the payment is for goods then a Paypal packing slip is also available for the vendor.
  885. When you register then you nominate how payments are to be made.  A common way would be the debiting of a credit card.  However, the Paypal member must have a Premier or Business account rather than a personal account in order that another member can pay them via credit card.
  886. >Receiving Money
  887. If someone pays you money then it appears in your Paypal account or you can request money from someone, in effect invoicing them.
  888. The money request screen is shown below.
  889.  
  890. While the individuals you bill do not need to be existing members of Paypal (neither do those you send money to), it is as well to check that they are willing to go through the necessary processes to send or receive payments.
  891. With all receipts the money goes into your Paypal account and stays there unless withdrawn.  No interest is paid on the balance.  If you have a Premier or Business account then you pay a fee on money received whereas on a personal account no fee is paid to receive money. Fees are 20 pence plus a rate between 2.7 and 3.4%.
  892. If you wish to withdraw money from your Paypal account to your bank account then a withdrawal fee is payable. The minimum amount a UK user can withdraw at one time is £10 and the withdrawal fee is 50p. The withdrawal fee applies to all accounts including the personal one. To save fees it may be better to let funds accrue and make fewer withdrawals in larger amounts.
  893. There is also a cross border fee for payments from one country to another.
  894.  
  895. A summary of fee information is shown in the screenshot above. The premier/business account fees shown above did not seem to match the UK ones when I checked the details, particularly I found no 0.7% and the minimum I found was 2.7%.
  896. Entry to the Paypal site is password protected and Paypal warn against giving details or logging in to any site other than paypal.com  Once logged on you can get details of your account, specifying the time period etc as shown below.
  897.  
  898. The only payment shown above is for my fridge thermistor.
  899. In summary then:  Paypal allows a quick easy method of paying for items between countries.  Their regulations insist that UK vendors may not charge additional fees for receiving payment this way but I have seen many who do so. By providing almost instant confirmed payment transactions are greatly speeded up. If you use Paypal via eBay links then progress of your Paypal transaction for an eBay item is shown on the item page after the auction has finished and in the relevant column in My eBay, helping to keep track of transactions.
  900. However, there is always a price to pay for the convenience, in this case the fees charged. For a seller it is a question of balancing the cost of the fees against the gains of selling to a wider community and avoiding many of the hassles of payment by other means, which anyway have fees of their own.
  901. Mike Battersby
  902.  
  903. ÿÿÿÿVOLUME4/ISSUE3/PD/INDEX.HTM Volume 4, Issue 3, PD World
  904.  
  905.  
  906.  
  907.  
  908. PD World
  909. Paul Brett with the latest freeware and PD releases for RISC OS.
  910. AMPlay - Mike Sandells
  911. AMPlay is a front end for the AMPlayer module. In other words it's a desktop player for MP3 music files. It contains a number of features specifically aimed at dealing with large collections of MP3s, and with large playlists.
  912.  
  913. In particular it understands that a playlist is more than a simple list of tracks. A track generally comes from a collection of tracks that we call an album, and is generally by a particular artist. AMPlay recognises this, and builds a database of tracks where each track has an associated album and artist. Many features of AMPlay are only possible because of this. Actions can apply to albums or artists as well as to tracks. You can play albums or artists at random as well as tracks. You can shuffle the tracks just within an album or artist. You can tweak the relative track volume for an album as a whole rathe
  914. than having to do it for each track individually. For more details please see the full HTML manual supplied.
  915. AMPlayer - AMPlayer Developers
  916. AMPlayer is a module for playing Audio MPEG data through the computers sound output, or to a streaming destination. Where sound is to be output, it will select the 8 or 16 bit output depending on the normal configuration (and availability). The module has been designed so it is easy to make other frontends, or add support for the module to existing player-frontends. The AMPlayer module is used to provide the playback from AMPLay.
  917. ARMAlyser - David Ruck
  918.  
  919. ARMalyser is an ARM code analyzer designed to understand RISC OS executable and object filetypes, including Absolute, DebImage, Module, Utility, Raw, AOF and ALF. It is designed to locate 26bit only instruction sequences in programs to help porting to 32bit only systems. Its range of output options and recognition and annotation of file types, code and data structures, makes it useful for other debugging and investigation purposes. Although you may think that ARMAlyser would only be of use to those writing software for the Iyonix you would be totally wrong. This is an exceptionally useful diagnostic tool for programmers.
  920.  
  921. Director - The RISC OS Director developers
  922. Director is a general purpose desktop tool. It allows you to customise your desktop by creating menus of useful commands and icons to attach the menus to. Any number of menus or icons can be created and attached in any order to each other. Director also allows an alternative and faster view onto files in the form of directory menus and allows these menus to be attached to other menus as well.
  923. Director has some other useful features such as remembering the most recently used files, the ability to add key strokes into the keyboard buffer and the ability to produce directory menus over drive icons. Director is fully customisable by the user, and can do many or all of the functions of Pinboard+, TreeMenu (AKA DirMenu), Filer-, QuickDir, DeskUtils, Memorizer, Menon and some of the functions of Filer+.
  924.  
  925. MiniDisc - Jamie Temple
  926. If you don't like Director then why not consider MiniDisc? MiniDisc is a desktop management tool, packed with features designed to enable you to make using RISC OS a more pleasurable and productive experience. MiniDisc has been built to work on all versions of RISC OS, from 3.10 to 5.03. Copy the '!MiniDisc' application out of the archive on to an appropriate location on your hard disc. MiniDisc will happily run from the 'Tasks' section of a 'new' RISC OS boot structure.
  927.  
  928. For RISC OS Select subscribers : The 'Extras.Select' directory contains a Configure plug-in for MiniDisc. See the ReadMe file in that directory for further information.
  929. QFiler - Martin Avison.
  930. QuickFiler is a utility which allows you to use many standard shortcut keys in conjunction with the RISC OS Filer. QuickFiler requires a Risc PC-style !Boot application (or later).
  931. Before you can use QuickFiler, it must be installed into your computer’s boot sequence and your machine must be restarted. Install QuickFiler by running the supplied !InstallQF application. This will copy across the program files to their correct place within the Boot application, build an appropriate version of the program module and generate new menu structures for the Filer.
  932. When your machine is restarted, you will find that the Filer gains the input focus when you click in a directory display, and then responds to the keyboard shortcuts shown on the Filer’s menu. If you change your Filer version, then QuickFiler should be re-installed to avoid problems.
  933. Verma - Lenny at MidiWays
  934. !Verma is a utility that displays version, etc information about relocatable modules, both those in memory (ROM/RMA) and those on disc (filetype &FFA) - in the latter case without the need to first install them in the RMA. If you need to know what versions of what modules are in your machine this is invaluable. How many times have you get messages from applications saying that they need such and such module, now you can see exactly what you have in your !boot sequence and what needs to be updated.
  935.  
  936. Workspace - DEEJ Technology
  937. With the increasing amount of RAM available in new RISC OS machines it is now easy to have many applications running on the desktop at once, even with larger screen modes the desktop can often become overcrowded with windows, leading to annoyance and inefficiency.
  938.  
  939. !WorkSpace aims to solve this problem by providing six RISC OS desktop workspaces. These workspaces are similar to the feature provided on HP­VUE® on Hewlett Packard UNIX machines. Workspaces can be switched between transparently to the applications, giving six times as much space to arrange windows as before, more elbow room than afforded by even the most expensive hi-res graphic card and large screen monitor.
  940. Signing off
  941. I will see you again next issue where we will have another bumper crop of new software releases for your entertainment.
  942. Paul Brett
  943.  
  944.  
  945.  
  946. ÿÿÿÿVOLUME4/ISSUE3/RECYCLER/INDEX.HTM Volume 4, Issue 3, Recycler
  947.  
  948.  
  949.  
  950. Recycler
  951. APDL/ProAction
  952. Recycler is © APDL/ProAction 2000. All rights reserved
  953.  
  954. No part of this product may be reproduced in whole or part by any means without written permission of the publisher. Unauthorised hiring, renting, lending, public performance or broadcasting of this product or its parts is prohibited.
  955. Recycler is supplied under licence for use on one computer at a time. The user may copy the program for backup purposes only. Please contact APDL for details of site and network licences.
  956. This version of Recycler is supplied with RISCWorld and is Licensed for use only   by RISCWorld subscribers.
  957. While every care is taken, the publisher cannot be held responsible for any errors in either this product or documentation for this product, nor for the loss of any data or consequential effects from the use of this package.
  958. If you discover a problem with this product, please contact APDL, preferably by phone or email, explaining the problem as briefly as possible, but including all relevant information, e.g. system configuration, hardware add-ons, version of operating system. Please do not return your disc or packaging until requested to do so. Always remember to quote the version number and serial number of the application.
  959. Published by APDL / ProAction Software  
  960.          APDL
  961.          39 Knighton Park Road
  962.          Sydenham
  963.          London
  964.          SE26 5RN
  965.     Telephone: 020 8778 2659
  966.     Fax: 020 8488 0487
  967.     Email: info@apdl.co.uk  
  968.     Web: www.apdl.co.uk
  969.  
  970. Installation & Getting Started
  971. Installing Recycler
  972. Getting started
  973. How to use Recycler
  974. The main window
  975. The Button bar
  976. The main menu
  977. Deleting without Recycler
  978. Preferences
  979. The icon bar menu
  980. Protecting against deletion
  981. Excluding files
  982. Choices...
  983.  
  984. Installation & Getting Started
  985. Installing Recycler
  986. Just copy the !Recycler application to wherever on your hard disc you wish to install it, but see the following section if you want Recycler to be run automatically when you start your machine.
  987. Getting started
  988. Once the installation process is complete you should run the Recycler application by double clicking on its icon from your hard drive.  The start-up banner will appear in the centre of the screen while loading is taking place and the Recycler icon will appear on the left-hand side of the icon bar, to the right of the floppy disc icon.
  989.  
  990. To ensure Recycler is always installed it is best to have set it up as part of your boot sequence.
  991. This can be done in several ways :
  992.  RISCOS 3.5 and upwards:- Put the application in your Tasks directory inside !Boot.Choices.Boot.
  993.  Up to RISCOS 3.5:-  in the !Boot file add the line :
  994.     Filer_Run <path to Recycler>.!Recycler
  995.  
  996.   Please see the RISC OS User Guide for more information.
  997. How to use Recycler
  998. The main window
  999. The main window controls many of Recycler's features. It shows the files that have been deleted along with all their information.
  1000. To open the main window click SELECT on the Recycler icon on the icon bar
  1001.  
  1002. Recycler's features are controlled via the main menu or the button bar along the top of the window.
  1003. You can alter the width of each of the display columns in the main window by dragging the edge of the column heading icon either left or right.
  1004. To select a file click SELECT over it and it will become highlighted.  When an operation is carried out this file will now be included.
  1005. The Button bar
  1006.  
  1007. Recycle
  1008. Click SELECT on this and the currently selected files will be returned to the location from which they were originally deleted.  If they cannot be put back for some reason, e.g. not enough disc space, then they will be left in Recycler.
  1009. Note : Files are restored in deleted date order, ie the oldest first.
  1010. Empty Bin
  1011. Click SELECT on this and the current selection of files will be removed completely from Recycler.  Use this option with care, files cannot be recovered once the bin has been emptied.
  1012. Select all
  1013. Click SELECT on this and all files inside Recycler will be selected.
  1014. Deselect all
  1015. Click on this and all the objects will become deselected.
  1016.  
  1017. Ascending order
  1018. Click SELECT on this and the files will be displayed in ascending order ie.  'A' would be at the top and 'Z' would be at the bottom.
  1019. Descending order
  1020. Click SELECT on this and the files will be displayed in descending order ie.  'Z' would be at the top and 'A' would be at the bottom.
  1021. Leaf
  1022. Click SELECT on this and the files will be sorted by leafname.
  1023. Type
  1024. Click SELECT on this and the files will be sorted on filetype.
  1025. Size
  1026. Click SELECT on this and the files will be sorted on size.
  1027. Datestamp
  1028. Click SELECT on this and the files will be sorted by the date they were created or last modified.
  1029. Deleted date
  1030. Click SELECT on this and the objects will be sorted by the date that they were deleted.
  1031.  
  1032. The first icon as shown above normally shows the total number of files in Recycler.  If any files are selected then it shows how many.
  1033. The second icon shows the size of the files in Recycler.  This is their original size when uncompressed.  Again, if any files are selected then it shows the total uncompressed size of the selection.
  1034. The total size of the files in Recycler is also shown underneath the Recycler icon on the icon bar.
  1035. The main menu
  1036. Clicking MENU over the main window opens the main menu.
  1037. Display
  1038. Moving to the right over the Display item in the main menu opens the Display sub-menu.
  1039. Disc name only
  1040. This will display just the disc name in the original location column and omit the filing system name.
  1041. Disc name & FS
  1042. This will display both the disc name and the filing system in the original location column.
  1043. Ascending/Descending
  1044. Does the same as the Ascending and Descending buttons.
  1045. Sort by
  1046. Click SELECT to choose which field to sort by.
  1047. File
  1048. Moving to the right over File  on the main menu opens the File sub-menu shown below.
  1049. Copy
  1050. Move to the right over this menu item and you will be able to copy the file out to your hard drive.  This will not remove the file from Recycler.
  1051. Restore
  1052. Click select on restore and the currently selected files will be returned to the location from which they were originally deleted.
  1053. If the restore is successful then the files will be removed from Recycler.  If they cannot be restored for some reason, e.g. not enough disc space, then they will be left in Recycler.
  1054. Delete
  1055. Click select on this item and the object will be deleted from the Recycler Bin.
  1056. This operation cannot be undone.
  1057. Select all/Clear selection
  1058. This will either select all the files in Recycler or deselect them all respectively.  The current number of files selected will be shown at the top of the Recycler window
  1059. Deleting without Recycler
  1060. Sometimes you may need to delete a file or group of files without using recycler.  To do this you should hold down the Shift  key and start the deleting process in the usual way.  This causes Recycler to temporarily stop grabbing deleted files.
  1061. Files deleted in this way are not recoverable.
  1062. Preferences
  1063. The icon bar menu
  1064. Recycler can be set up in a number of different ways to suit you.  Files or directories can be protected against deletion and Recycler can be told not to grab files or directories associated with certain tasks.
  1065. Info
  1066. This gives information about Recycler including your licence and serial number.
  1067. Quit
  1068. Will quit Recycler and stop grabbing deleted files.
  1069. Files deleted after Recycler is quit can not be recovered.
  1070. Files...
  1071.  
  1072. The files window allows you to set up which files or directories are protected, and which ones are not to be captured if deleted.
  1073. Protecting against deletion
  1074. To protect a file or directory against deletion select Don't Delete   at the top of the files window and click on Add   to open the window shown.
  1075.  
  1076. Drag a file or directory to the window or type in the full pathname of an existing file or directory. If you choose to protect a directory then its contents are also protected and cannot be deleted whilst Recycler is running.
  1077. Clicking SELECT on Cancel   will close the window and not change the list of protected files.
  1078. You may, if you wish, use a System variable such as <MyObj$Dir> in the window.  This will work as long as the variable MyObj$Dir is defined when you click on Add.
  1079. Removing the protection
  1080. Click SELECT on an item in the files window and click on Remove   to remove that file or directory from the list of protected files.
  1081.  
  1082. Excluding files
  1083. To exclude a file from capture by Recycler select the Don't Capture option at the top of the Files window and click select on the Add option to open the window below.
  1084. Anything within <Wimp$ScrapDir> will not be captured.
  1085. Files or directories are added and removed in the same way as they are in section 4.3.  By default there will be some files or directories already set up in the Don't Capture section.
  1086. Close
  1087. Click select on Close and the files window will be closed.
  1088. Choices...
  1089. Select Choices...  from the icon bar menu to open the window below.
  1090.  
  1091. Confirm when auto-deleting
  1092. You can specify how long to keep deleted files before they are removed from Recycler.  This option prompts you for confirmation when the specified time has elapsed and there are files about to be removed.
  1093. Overwrite existing files
  1094. With this option ticked any file that is about to be overwritten will be captured.  This is very useful if you are continually modifying the same document, as it provides you with a way of returning to an old document.
  1095. Delete from the filer menu
  1096. With this option ticked any attempts to delete a file by using the filer menu will result in the file being captured.
  1097. Delete from floppy discs
  1098. With this option ticked any files being deleted from floppy discs will be captured and stored on your hard disc.
  1099. Compression
  1100. You can choose to compress the files in the 'Bin' either when Recycler starts up or as it is closing.  Untick both and files inside the 'Bin' will not be compressed at all.
  1101. Remove Recycler module on exit
  1102. With this option ticked the module which captures all your files will be removed when the Recycler application is quit.
  1103. If it is not ticked then you can quit the Recycler application and the Recycler module will carry on capturing your files.
  1104. Confirm when deleting
  1105. With this option ticked you will be prompted every time you delete a file in order to confirm the action.
  1106. Bin Location
  1107. Drag the folder out to set a new location for the 'Bin'.  You can only do this when the 'Bin' is empty.
  1108. Default
  1109. Click select on Default and all the choices will be set to their default values.  This will only set the default location for the 'Bin' if it is empty.
  1110. Cancel
  1111. Click select on Cancel and no changes are made and the window is closed.
  1112. Save
  1113. Click select on Save and the options you have chosen will be saved to disc.
  1114. APDL/ProAction
  1115.  
  1116. ÿÿÿÿVOLUME4/ISSUE3/RISCPC/INDEX.HTM Volume 4, Issue 3, Improving RISC PC Video
  1117.  
  1118.  
  1119.  
  1120.  
  1121. Improving RISC PC Video
  1122. Stephen Morton continues improving his RiscPC
  1123. Improving RiscPC video
  1124.  
  1125. If you followed my article in the last issue of RISC World you should now have a heatsink attached to your VIDC chip on your RiscPC motherboard. If you did not follow my previous article then in order to take advantage of the suggestions offered below you will need to add the heatsink as discussed. For those that have fitted a heatsink let us see what it allows us to do.
  1126. Higher Bandwidths
  1127.  
  1128. Before making any new monitor definition files or taking any other action we need to tell the RiscPC that it can use a higher bandwidth on the VIDC chip. The RiscPC gets the information on how much bandwidth the VIDC can cope with from the BandLimit settings inside the PreDesk section of the RISC OS boot sequence. You will need to increase the values set by BandLimit before continuing.
  1129. For RISC OS 3.7x
  1130. What you need to do is go into the directory called:
  1131.      !Boot.Choices.Boot.PreDesk
  1132. Now hold down SHIFT and double click on the file called BandLimit, this will load the file into a text editor (which on most machines would be Edit). You will normally see the following:
  1133.      VIDCBandwidthLimit XXXX XXXX XXXX XXXX
  1134. Where XXXX represents a number. You may find you have four sets of numbers, or you may find you have three sets, it does not matter. For a default vanilla RISC OS 3.7 build the numbers would be:
  1135.      VIDCBandwidthLimit 38000000 76000000 152000000
  1136. These numbers represent the bandwidth of the VIDC depending on the VRAM fitted to the machine:
  1137. 38000000 - Bandlimit for machines with no VRA
  1138. 76000000 - Bandlimit for machines with 1Mb of VRA
  1139. 152000000 - Bandlimit for machines with 2Mb of VRA
  1140.  
  1141. If you have a fourth set of numbers then you can ignore them, the only numbers that matter are the third ones, those for a machine with 2MB of VRAM. You need to increase this number, say to 192000000 and then save the file.
  1142. For RISC OS 4.x
  1143. Here the principle is exactly the same, but the BandLimit is set up in a slightly different place. Go into the directory:
  1144.      !Boot.Choices.Boot.PreDesk.Configure
  1145. Now hold down SHIFT and double click on the file called !Run, this will load the file into your text editor. You will normally see the following:
  1146.     /<Obey$Dir>.Bandlimit 38000 76000 152000 8000
  1147.     /<Obey$Dir>.SetPreDes
  1148.     /BootResources:Configure.ClrMonito
  1149.     /<PreDesk$Configure>
  1150.  
  1151. As you can see these figures are actually the same as the RISC OS 3.7 figures but with three of the trailing zeros removed. Alter the the third figure to say 192000 and then save the file.
  1152. Getting Ready
  1153. Now you have made the changes you need, save any work and reboot the computer, you should not notice any change at this point. If you get any errors on startup then you should re-check the file that sets the BandLimit in case you have made a mistake. Provided all is well you can continue.
  1154. At this point I should make it clear that producing screen modes that operate beyond the abilities of your monitor could damage your monitor. If you are not sure what the maximum resolutions, horizontal and vertical refresh rates of your monitor are then now is the time to find out and write then down on a piece of paper and keep this to hand.
  1155. You also need to know where you Monitor Defintion Files (MDFs) are stored. They are all stored in directories inside:
  1156.      !Boot.Resources.Configure.Monitors
  1157. If you have a look inside this directory you will normally find one directory for each monitor manufacturer, on many machines you will only find one Directory called Acorn. Each of the Monitors will be supplied with one MDF as shown below:
  1158.  
  1159.  
  1160. The default RISC OS 3.7 Acorn MDFs
  1161. If you hold down SHIFT and double click on one of these files then it will load into a text editor and you will be able to see that it is human readable:
  1162.  
  1163.  
  1164. The MDF for an Acorn AKF85
  1165. A couple of small notes of caution should be sounded at this point. Firstly before editing any of these files you should take a backup just in case something goes wrong. Secondly you should be aware of how the RISC OS Configure program works out what MDFs are available on a machine. It would make sense for the Configure program to scan the directory looking at the file names and construct a list based on the files that are available. However what it actually does is scan the directory looking for MDF files. Whenever it finds on it loads it and then uses the name found in the monitor_title to work out what monitors are available. I mention this because it is quite easy to make a new MDF with a different file name, but the same monitor_title name as an existing one and then discover that it does not appear in the Configure monitors list.
  1166. Making a copy of an MDF
  1167. What you should now do is find what monitor your machine is configured to use. You can do this from the RISC OS Configure application. To activate this all you have to do is double click on !Boot and the configure program will be loaded.
  1168.  
  1169.  
  1170. Configure on RISC OS 3.7
  1171. Now click on the monitor icon and the monitor configuration window will open:
  1172.  
  1173.  
  1174. The current monitor settings
  1175. I suggest you write the name of the current MDF in use on the piece of paper we used earlier. You can now close the configure windows. Now go back into
  1176.      !Boot.Resources.Configure.Monitors
  1177. and SHIFT double click on your particular MDF to load it into a text editor. Change the name in the monitor_title section and save the file with the new name. For example you could change
  1178.      monitor_title:Acorn AKF85
  1179. to say
  1180.      monitor_title:New AKF85
  1181. and then save the file back into the Acorn directory with the name NewAKF85.
  1182.  
  1183.  
  1184. An example new file
  1185. You are now ready to start editing your MDF.
  1186. Editing your MDF with MakeModes
  1187. You can now load your copy of MakeModes, it is also worth mentioning at this point that MakeModes does come with a useful manual which you would be well advised to read (I have HTMLified it and have included it in this issue of RISC World - ED).
  1188. Take note of the warning window that appears when MakeModes loads. Now close the Window. Find your new MDF (in the example above we called it NewAKF85 and drag this file to the MakeModes icon on the icon bar. You should get an error message that says that MakeModes cannot find this monitor on its list, you can cancel this error and ignore it. Your MDF will now load and you will see the following window:
  1189.  
  1190.  
  1191. The MakeModes window
  1192. Now you can select a mode from the Current Mode menu button, for example try selecting 1024 x 768 (75Hz). The mode will now be shown. You can now increase the refresh rate of this mode to 78Hz simply by altering the Pixel Rate to 86000. Click on Test Mode to see if the mode works, if you get a blank screen press Escape to return to your normal screen mode.
  1193. If you get a weird shimmering effect when trying a screen mode then you have gone too far and the VIDC simply cannot push around the amount of data required, try reducing the Pixel Rate
  1194. Making a new mode
  1195. This is the main point of the exercise, to add new modes with higher refresh rates than can normally be produced by a RiscPC. As an example I will show how you can make a mode bigger than 1024 x 768 that can still display 32,000 colours.
  1196. The maximum size of a screen mode is determined by the VRAM inside the RiscPC. With 2Mb of VRAM any screen mode must fit inside this 2Mb limit. So since 2Mn is 2048K our screen mode can only be a maximum of 2048K in size. Since each pixel in a 32,000 colour screen mode takes up 2 bytes we have a possible limit of 1048576 pixels. If we make a screen mode of 1152 x 900 pixels this will contain 1036800 pixels and will therefore fit inside our size limit. We need to ensure that the X resolution (in this case 1152) is divisible by 32. This is because in a 24bit colour mode each pixel takes up 4 bytes, and 4 bytes is 32 bits. You can make odd size modes such as 1400 x 1050 that do not fit this requirement, but I do not recommend this until you have a good deal of experience with RISC OS Monitor Defintion Files).
  1197. To make the new screen mode take the following steps:
  1198. Select the 1024 x 768 (75Hz) mode from the Current Mode men
  1199. Type in the new name for the mode, in this case 1152 x 900 and ensure the name button is ticke
  1200. Increase the two display settings using the arrow buttons until they say 1152 and 90
  1201. Note that as you increase the resolution the Frame rate and Line rate values decreas
  1202. When you have the correct resolution selected check the Timing diagnostics section in Make Mode
  1203. Make any changes suggested
  1204. Click on Test Mode, you should now have a 32,000 colour 1152 x 900 deskto
  1205. Press Escape to return to your old mod
  1206. Press MENU over the MakeModes window and save your MD
  1207.  
  1208.  
  1209.  
  1210. making a 1152 x 900 screen mode
  1211. Now we come to the reason why a heatsink is so useful. We need to increase the refresh rate above the current 59Hz as shown in the MakeModes window. Gradually increase the value of the Pixel Rate by a few hundred each time. As you do this the Frame Rate will increase. If you start getting a shimmering effect then you have gone too far, reduce the figure until the shimmering stops. The maximum frame rate for each machine will be slightly different, indeed if you try this without a heatsink you may find that 1152 x 900 doesn't even work at all.
  1212. Now you understand the basics of MDF creation read the MakeModes manual. Don't forget that once you have made a new MDF you need to tell the computer to use it by using the Configure application.
  1213. Conclusion
  1214. Adding a heatsink and making your own MDF will allow you get the most out of your RiscPC and monitor. It certainly isn't anywhere near the same as adding a ViewFinder, or indeed buying a new machine, but it can get a little bit more out of your existing equipment for no real outlay.
  1215. Stephen Morton
  1216.  
  1217. ÿÿÿÿVOLUME4/ISSUE3/TEXTAREA/INDEX.HTM Volume 4, Issue 3, Text Areas in !Draw
  1218.  
  1219.  
  1220.  
  1221. Using Text Areas in !Draw
  1222. Most RISC OS users will have used !Draw at one time or another, and there's little doubt that it's one of the most powerful tools available for the platform. The fact that it is given away with the OS means it is undervalued and under used and people tend to use something far more expensive and complex for tasks which can just as easily be done using !Draw.
  1223. Why use !Draw?
  1224. In the early days of the Archimedes computer, before there were any DTP programs for them, !Draw was far more widely used for this type of work, but now that almost everyone has a powerful DTP program like Impression or Ovation there is a natural tendency to use one of these for everything, and so employing !Draw for anything other than creating vector drawings has fallen out of favour. However, where you want a single page DTP-like document mixing text and graphics !Draw has some major advantages over any other RISC OS program.
  1225.  Every RISC OS computer, no matter what model, comes with a copy, so you know that everyone will be able to look at your document.
  1226.  The DrawFile format is very compact, much smaller than any DTP file.
  1227.  As long as you use standard fonts you know that everyone will see your document exactly as created.
  1228. These can be quite important if you want the document to be readable by other RISC OS users.
  1229. You might think that a better medium for this would be HTML. However, this has its own disadvantages. If you use graphics in an HTML document then the graphics files are external, which complicates things somewhat, and they will usually be bitmap graphics, which means they'll be a lot bigger. More importantly, with a DrawFile you know that everyone will see exactly   the same layout as your original file, assuming that you've used universally available fonts. HTML is certainly not WYSIWYG. What you  see with your browser and settings when creating the document may resemble only in general terms what the recipient sees.
  1230. Furthermore there's one use to which a DrawFile can be put that is almost unique. It can be used as a form  when you want the recipient to be able to fill in some details and return it to you. You could use a plain text file for this, but it wouldn't look so nice. !Draw is ideal as it enables the recipient to fill in the required data and then either print the form and return it to you or transmit the file by electronic means. Whichever is used, you both know that the other will have an identical copy.
  1231. So, even in this age of HTML and complex DTP programs the humble DrawFile still has its uses, and with surprisingly little effort can be made to produce quite sophisticated single page documents mixing text and graphics.
  1232. Using text in !Draw
  1233. One aspect of !Draw which has always been under used is its ability to handle text. Almost everyone will have typed single lines of text into !Draw, but many don't realise that !Draw can deal with text in a much more sophisticated way, with many of the characteristics of a DTP program.
  1234. This is done using  Text Areas.  A text area is an 'object' similar in many respects to others in !Draw, it's just that instead of being a collection of lines or shapes or holding a graphic like a Spritefile or JPEG it contains text. It can be dragged about and have its size and shape altered just like other objects.
  1235. To create a text area you must first write the text in a text editor, either !Edit or whatever editor you prefer. Just write the text in your text editor and drag the textfile into a !Draw window, making sure that you press RETURN at the end so that the text ends with an end-of-line character, otherwise !Draw will give an error message and won't load the text.
  1236. What you will then see initially is something like this.
  1237.  
  1238. This, as you can see, is the text of the preceding paragraph, but it appears truncated. This is because the initial default size of a text area is quite small, and the text is automatically formatted to fit. To see all of it click on it to select it and then drag the object's resize handle in the usual way. As you resize the object the text will automatically be reformatted to fit within it, like this.
  1239.  
  1240. You will notice that there is no Rotate handle on a text area object. This is one of the things you can't do with text areas. If you select the text area and then look at the Style sub menu you will see that the only items that can be selected are 'Text colour' and 'Background', and although the former works as expected the latter doesn't, but more about this later. You will also find that although text areas can be magnified, this merely alters the size of the frame the text appears in, it doesn't alter the width or height of the actual text. Unlike simple text objects you cannot alter the font or size of the text from the Style sub menu, these and many other features are all set and altered by commands embedded in the text. It is these embedded commands that are the most powerful feature of the text area.
  1241. The Header
  1242. All text that is to be placed in a text area should have a Header.  This is a series of commands that define all the various styles that will be used, default line spacing, and various other parameters, including the number of columns. If, as in the example above, there is no header, then !Draw will add a default header of its own to set the style of the text. However, if you want to use many of the commands to alter text style etc. described later you must  include a header. 
  1243. The default 'style' for a text area is to use the font Trinity.Medium at 12 point with line spacing at 12 point, that is, single spaced, and fully justified, as you can see in both the examples above. 
  1244. If you select the text area you will find that you can use 'Text area' from the Save sub-menu to save the text. If you load this text into your text editor you will see that !Draw has added a header to the text.
  1245.     \! 
  1246.     \F 0 Trinity.Medium 1
  1247.     \F 1 Corpus.Medium 1
  1248.     \0\AD/\L12
  1249. Some versions of !Draw may split the final line into three separate commands, thus -
  1250.     \
  1251.     \A
  1252.     \L12
  1253. so don't worry if you see this, the meaning is exactly the same as you'll understand as we proceed.
  1254. I'll begin by describing what each of these commands mean as this will help you to understand the basic principles.
  1255. You will see that each line begins with a '\' (backslash) character. This character tells !Draw that what follows is a command, not just text. A command is terminated by either the end of a line or the '/' (forward slash) character. If you want to use an actual backslash character in your text then just type two together, '\\', 
  1256. Commands don't have to be on a separate line from the text, though some will automatically cause a line break. However, with the header they obviously precede the text so are separate from it.
  1257. The first line is always the same. The first two characters, '\!', tell !Draw that this text is in a text area. The number which follows is the version number, and must be the figure '1'. This was presumably done so that if changes were ever made to the structure then later versions of !Draw would know whether to use the old or new format.
  1258. The next line defines a Font, hence the 'F', although it should more properly be called a style,  and so that's how I shall refer to it. The 'F', which is the actually command, is followed by the number of the style being defined. This can be any number from 0 to 99. (Some versions of !Draw can support up to 256 styles, but it's probably best to stick with 0-99 which should be enough). The space between 'F' and the number is optional, but there must be a space after the number. After the style number is the precise  name of the font to be used. For example, you can't just use Trinity,  you would have to specify the full name of the font, eg. Trinity.Medium  or Trinity.Bold.  If you use a font that doesn't exist then !Draw will issue an error message and try to use the next available style it can  match.
  1259. After the font name is another space and then the font size.
  1260. I'll describe the way styles are defined and used in more detail later.
  1261. You will see that in the default header a second style is defined using the monospaced font Corpus.Medium.
  1262. The final line contains three separate commands.
  1263. The first is a backslash followed by a zero. When the backslash is followed by just a number in this way it tells !Draw to display the text in that style number. In this case it's zero, which, as we know is Trinity.Medium 12 point. Therefore any text will be displayed in that style.
  1264. The next command consists of the letters 'AD'. The 'A' means Alignment  and must be followed by one of four further letters, L, R, C or D. 
  1265.  L means 'Left, and displays text left aligned with a ragged right margin
  1266.  R means 'Right' and displays text right aligned with a ragged left margin
  1267.  C means Centred, and displays each line centred in the frame
  1268.  D means Double alignment, and displays text 'stretched' to fit the frame, that is, fully justified.
  1269. The final command sets the line spacing. After the backslash the letter 'L' tells !Draw that this is a line spacing command and the 'L' is followed by the spacing in points. Normally this would be the same as the font size, but if you wanted widely spaced text you could use a higher number, or if you were trying to get the maximum amount of text into a small space you could make this 1 or even 2 less than the point size.
  1270. Before continuing you might like to try altering some of the values in the default header and seeing what the effects are. Try changing the point size, line spacing and even changing the font name used. You might also like to see what happens with the alternative alignment commands.
  1271. More on Fonts and Styles
  1272. You should understand that there's no mechanism for switching to Bold or Italic or altering the point size or proportions of text. Therefore for each change you may wish to make you must define a complete style. For example, if you had wanted to embolden some of the words in the text which was to be in style 0, that is, Trinity.Medium at 12 point, you would have to define a complete new style for that purpose, eg.
  1273.     \F 1 Trinity.Bold 12
  1274. When you wanted a word or words in bold text you would then switch to this style, and then back to the non bold style afterwards.
  1275. Don't forget that if you change the font size you should normally also alter the line spacing. Line spacing changes take effect at the end of the line in which the command appears. It's important to remember this, as if, for example, you are going to change from a style which is 12 point to one which is 20 point you should put the 'L 20' command before  the end of the last 12 point line or the 20 point line will be spaced at 12 point.
  1276. For example, if F0 is 12 point and F1 is 20 point -
  1277.   \
  1278.   \L1
  1279.   This line is 12 point \L2
  1280.   \1 This line is 20 point. \L1
  1281.   \0 Back to 12 point again
  1282. When defining a style with the F command there is an additional parameter that can be used. If you follow the font point size with another number then the first number will define the font height  and the second number the font width.  This can be used to alter the width/height ratio of the font to give expanded or compressed text.
  1283. For example -
  1284.   \F3 Homerton.Bold 16 24
  1285. would define a style where the characters were 12 points high but stretched horizontally to 24 points.
  1286. Underlining
  1287. I have explained how there is no direct equivalent to 'bold' and 'italic' effects in text areas, but you can underline text.
  1288. The \U command switches on underlining. There are two additional numerical parameters that must be supplied. In each case the number is 1/256th of the point size.
  1289. The first defines the position  of the line. This number can be in the range -128 to 127. A position of '0' will place the line immediately below the letters. This means that descenders will be below the line, and it normally looks a bit messy. Even if you want your descenders to be below the line or if the text has no descenders, for example, if it's all capitals, a small gap always improves the appearance. A value of about -20 will give about the right minimum gap. If you want descenders to appear above the line then a value of about 70 should be OK. However, this might then be too close to the top of the following line of text, so you may have to increase the line spacing.
  1290. Giving the line position a positive value means it will be above the base of the letters, producing a 'strike through' effect. For normal mixed case text a value of about 70 should be OK, slightly more it the text is all upper case.
  1291. You can't use this to put a bar above  letters because the highest value permitted is 127, which will be only around halfway up the text and about in line with the top of a lower case letter,.
  1292. The second parameter sets the width  of the line. For a thin underline a value of about 20 should be OK, or around 30 for a thicker line. However, remember that the value is not absolute, but a fraction of the point size, which is normally fine in practice since the thickness of the underlining will be proportional to the size, and hence the thickness, of the letters.
  1293. There are two methods that can be used to turn underlining off. You can set the underline width to zero, that is 
  1294.   \U 0 0/
  1295. Or you can use 
  1296.   \U./
  1297. which is shorter. Note that is a full stop after the U.
  1298. Finally there must be a space between the two numeric parameters, but the space between the 'U' and the first number is optional.
  1299. Starting new lines
  1300. You will soon discover when you start putting text into text areas that your RETURNs at the end of lines are ignored and the text is just formatted to fit the frame. 
  1301. For example, the following text -
  1302.   This is the first lin
  1303.   This is the secon
  1304.   This is the third
  1305. if dragged directly into !Draw might at first appear as -
  1306.  
  1307. but this is only because the length of the lines just happens to fit the default box size. If you 'drag out' the box you will see something like this -
  1308.  
  1309. demonstrating that !Draw is actually ignoring the end of line characters. 
  1310. In fact, !Draw treats a single RETURN as a space. So how do you start a new paragraph?
  1311. There are two ways of doing this.
  1312.  Use two RETURN characters. 
  1313.  Use '\nl' or a '\' character immediately before the RETURN.
  1314.  
  1315. These two methods are not interchangeable. Using '\' will just force a line break and the new line will start immediately below the preceding line with the standard line spacing. Two RETURN characters are interpreted as 'start a new paragraph', and so a gap is inserted. By default this is 10 points, but it can be defined using the '\P' command.
  1316.  
  1317. This was created using the text;
  1318.   \! 
  1319.   \F 0 Trinity.Medium 1
  1320.   \A
  1321.   \
  1322.   \P 
  1323.   This is the first lin
  1324.   This is the secon
  1325.   This is the third
  1326. Note the '\P 6' command to put a 6 point gap after every paragraph and the double-spaced lines to define the ends of the paragraphs.
  1327. Headings
  1328. As the line spacing is not altered when you change font size but must be done manually you may have realised from the previous section that if you want to use a bigger font, for example, as a heading, then you must alter the line spacing in the line before you change the font.
  1329. To do this you would use exactly the same techniques described in the previous section. Change to a larger line spacing before the end of the last line of the paragraph, making sure it's big enough to accommodate the larger font and leave a gap if required, then change back to a smaller line spacing to suit the text which will follow the heading.
  1330. Remember that if your text begins with a heading you must set the line spacing to at least the same as the point size used in the heading before  the heading line otherwise the text will protrude above the bounding box of the text area. This isn't normally a problem but is best avoided.
  1331. Margins
  1332. It is possible to set the left and right margins for the text. As text will automatically flow to fill the bounding box the main reason for wanting to do this is where you want part of the text to be indented from one or both sides. The most common reason for this is where you have headings offset to the left of the body text. For example -
  1333.  
  1334. This was produced by the text;
  1335.   \! 
  1336.   \F 0 Trinity.Medium 1
  1337.   \F 1 Homerton.Medium 1
  1338.   \0\AD/\L1
  1339.   \1/The Heading
  1340.   \M 24 
  1341.   \L1
  1342.   \0/This is the body text, which is fully justified. It shoul
  1343.   be offset 24 pt. from the left hand side of the box and no
  1344.   offset from the right hand side.
  1345. You can see that the heading (F1) is defined as Homerton.Medium in 14 pt. After the heading text the line spacing is reset to 12 pt. to match the body text and the margin is set to 24 pt. left and 1 pt. right, which causes the indentation of the body text. Before the next heading, after the end of the body text, you would need to reset the left margin again using;
  1346.   \M 1 1/
  1347. Note that I've used an indent of 1 pt. and not 0 pt. This is because !Draw uses a 1pt. indent at both left and right sides by default to make sure that the text will always be slightly inside the bounding box, and so I've followed this. You could, of course, use 0 or any other figure if you prefer.
  1348. Multiple columns
  1349. Although these are called columns what this command actually does is to create a number of 'linked' text areas and text flows from one to the next. You can use it to produce multi-column pages, or you can use it to make text 'flow' around a picture, as shown below. Here there are three 'columns', but the three boxes are set so that the text appears to run around the picture.
  1350.  
  1351. So how was this done?
  1352. The header for this text area consists of;
  1353.   \! 
  1354.   \F 0 Trinity.Medium 1
  1355.   \0\AD/\L1
  1356.   \D3
  1357. This is followed by the text of the paragraph above.
  1358. The '\D' command creates the columns. The number following is the number of columns required. When you drag the text into !Draw it will appear as a single object with a single bounding box although the text will be split into three separate horizontal 'chunks'. This can be selected and dragged or resized as usual. To move or re-size each individual column just double-click on it and it will appear with its individual bounding box, which can be dragged and re-sized. 
  1359. As you alter the size of an individual box the text will automatically 'flow' to or from the next box. Once you click outside an individual 'column' you can once again drag all three around together, and they remain grouped in this way.
  1360. As you might gather, in the example above the three 'columns' ware altered in this way so that the first section forms the wide part above the picture, the second is the narrow part beside the picture and the third is the wide part below the picture. If you subsequently make an alteration to the text you can drag it back to this text area and it will re-flow to fit the three boxes.
  1361. Colours
  1362. The two commands \C and \B are used to set the colour of the text and the background respectively. In each case the command takes three parameters which are the red, green and blue components and which can have a value of between 0 and 255.
  1363. For example -
  1364.   \! 
  1365.   \F 0 Trinity.Medium 1
  1366.   \A
  1367.   \
  1368.   \L1
  1369.   \C 255 0 0/This is Red text
  1370.   \C 0 255 0/This Green text
  1371.   \C 0 0 255/This Blue text
  1372.   \C 0 0 0/This Black text\
  1373. would produce -
  1374.  
  1375. Adding the line -
  1376.   \B 240 240 0/
  1377. before the first line of text should  produce a yellow background, but instead all you would see is -
  1378.  
  1379. The difference between this and the previous example is that although there is no background colour the text has been anti-aliased so that it will display correctly against a yellow background. If you want an actual background you it is best to create a rectangle in !Draw filled with the correct colour, and place it behind the text area, like this.
  1380.  
  1381. Perhaps not terribly pretty but id does illustrate the principle.
  1382. Vertical movement
  1383. The 'V' command can be used to move the following text vertically up or down relative to the normal position of the line. It takes a single numeric parameter which is the amount of movement in points. To move upward use a positive value, to move downwards use a negative value.
  1384. The main reason for this is for superscripts or subscripts, but it could be used for other effects, for example -
  1385.  
  1386. which was produced by -
  1387.   \! 
  1388.   \F 0 Trinity.Medium 1
  1389.   \F 1 Homerton.Medium 1
  1390.   \AD/\L1
  1391.   \
  1392.   S\V-2/L\V-2/A\V-2/N\V-2/T
  1393. Unfortunately there is no equivalent for horizontal movement and so no equivalent to TAB. The only way to force horizontal movement is either by the Margin command or by padding with spaces.
  1394. Hyphenation
  1395. Word processors can usually use hyphenation as a means of splitting long words at the end of a line when formatting text. !Draw can also do this, but you have to tell it which words it can split and where it can split them.
  1396. If you insert '\-' at a point in a long word where it can be split (that's the backslash character followed by a minus) then if necessary, !Draw will split the word at that point. If it is not split then the \- will not, of course, appear in the text.
  1397. Comments
  1398. If you want to put comments in the text then you can do this with the \; command, a backslash followed by a semi-colon. Anything after this and up to the next RETURN will then be treated as a comment and not displayed.
  1399. Finally
  1400. When the Archimedes computer first appeared people were amazed at how powerful !Draw was. You could not obtain anything on any other platform that was anywhere near as good without spending hundreds of pounds - and it came free with the computer!
  1401. We have now grown rather complacent and tend to use complex DTP program for the simplest things - probably because we now all have them. However, don't forget !Draw, and especially the little used text areas. It really is worth spending the time to learn to use them.
  1402. Command summary
  1403. This summarises the commands used in text areas, listed alphabetically.
  1404.  \A, set alignment followed by -
  1405.  L - left
  1406.  R - right
  1407.  C - centered
  1408.  D - double, fully justified
  1409.  \B <red> <green> <blue> sets background colour
  1410.  \C <red> <green> <blue> sets text colour
  1411.  \D <num> number of columns
  1412.  \F <num> <font name> <font size> [font width]  defines a font or 'style'
  1413.  \<num> switch to style number <num>
  1414.  \L <num> line spacing in points
  1415.  \M <left> <right> sets left and right margins in points
  1416.  \nl or just \ start a new line
  1417.  \P <num> sets paragraph spacing in points.
  1418.  \U <position> <thickness> underline. Parameters are in 1/256th of the point size of the text. <position> can be from +127 to -128. You can use \U.? to switch underlining off.
  1419.  positive number moves up, negative down.
  1420.  \; <text> used to insert a comment
  1421.  \\ literal backslash character
  1422.  
  1423. Don't forget that the text must begin with the line -
  1424.   \! 
  1425.  
  1426. Dave Holden
  1427.  
  1428. ÿÿÿÿVOLUME4/ISSUE3/TOOLBOX/INDEX.HTM Volume 4, Issue 3, RISCOS Ltd issue new toolbox modules
  1429.  
  1430.  
  1431.  
  1432. RISCOS Ltd issue new toolbox modules
  1433. Issued by RISCOS Ltd
  1434. RISCOS Ltd is pleased to announce updates to the RISC OS Toolbox modules for use with all versions of RISC OS. The last public release of the Toolbox modules was in April 2000. These modules fix a large number of longstanding bugs and are compatible with RISC OS 3.1x to RISC OS 5.x.
  1435. Overview
  1436. The Toolbox was designed with the following goals:
  1437.   to facilitate writing consistent, high-quality desktop application
  1438.   under RISC OS 3.10 and later 
  1439.   to encourage the writing of applications whose user interface complie
  1440.   with the RISC OS 3 Style Guide 
  1441.   to be easy to learn 
  1442.   to be language-independent 
  1443.   to make it no harder to do operations which can currently be don
  1444.   using the Wimp
  1445. The Toolbox has the following characteristics: 
  1446.   it is structured as a set of RISC OS relocatable module
  1447.   it will only run on RISC OS 3.10 or later 
  1448.   it does not directly call back to code in the client application 
  1449.   it is SWI-driven
  1450.   it can be used from C, C++, BASIC or Assembler with equal ease 
  1451.   communication back to the client application is via events
  1452.   the client application does not have direct access to data structure
  1453.   maintained by the Toolbox 
  1454.   it uses a new resource file format to hold templates for the use
  1455.   interface objects which the application will use at run-time. 
  1456. The User Interface Toolbox has been designed to be extensible to support an
  1457. number of Object Classes by the creation of Object Modules which implement    
  1458. those Classes. ResEd (the resource file editor supplied with Acorn C/C+
  1459. and also as part of the RISC OS Select Scheme) was also designed so tha
  1460. editors for new Object Templates can be added without the need to alte
  1461. the main ResEd binary
  1462. Toolbox module installer 
  1463. The modules are provided for download and installation as a Self Extractin
  1464. and Installing Archive
  1465. The toolbox module installer, Tbox/ff8, is intended to install update
  1466. toolbox modules. You should set its type to &FF8 (Absolute) and then doubl
  1467. click it to run it.
  1468.  
  1469. Latest Module versions and main changes 
  1470. All modules are built to be processor and C library neutral, so th
  1471. installer and the modules themselves will function on RISC OS 3.
  1472. through to 5.x with whatever C library is presently installed. 
  1473. ColourDbox 0.23 (01 Jul 2003)
  1474.   No significant changes. 
  1475. ColourMenu  0.24 (01 Jul 2003) 
  1476.   No significant changes. 
  1477. DCS_Quit 1.16 (05 Jul 2003) 
  1478.  
  1479.    Resized buttons to be 'standard' sizes
  1480.    
  1481.   Updated dialogue boxes to new style. 
  1482. FileInfo  0.22 (01 Jul 2003) 
  1483.   No significant changes. 
  1484. FontDbox 0.22 (01 Jul 2003)
  1485.   No significant changes. 
  1486. FontMenu 0.27 (01 Jul 2003)
  1487.   Fix for menu creation in submenus (aborts in Zip2000). 
  1488. IconBar  1.22 (01 Jul 2003)
  1489.   No significant changes. 
  1490. Installer 0.11 (01 Jul 2003)
  1491.   Made compatible with RISC OS 3.1. 
  1492. Menu 0.40 (01 Jul 2003)
  1493.   No significant changes. 
  1494. PrintDbox  0.20 (01 Jul 2003)
  1495.   Updated to use the standard divider between buttons and entry icons. 
  1496. ProgInfo 0.20 (01 Jul 2003)
  1497.   No significant changes. 
  1498. SaveAs 0.22 (01 Jul 2003
  1499.  
  1500.    No significant changes. 
  1501. Scale 0.19 (01 Jul 2003)
  1502.   No significant changes. 
  1503. TextGadget 0.49 (06 Jul 2003)
  1504.   Added support for cursor positioning. 
  1505.   Fix for initial text offset bug
  1506.    
  1507.   Added changes from Rik Griffin
  1508.    
  1509.   Changed error returns to be valid
  1510.    
  1511.   Added support for multiple columns in scrolllist
  1512.    
  1513.   Added 'No selection' and 'Icon selection' flags to Scrolling Lists
  1514.    
  1515.   Updated ScrollList fade algorithm
  1516.    
  1517.   Added column headings
  1518.    
  1519.   Redraw of wide lists improved
  1520.    
  1521.   Rendering the gadget outline uses defined colours for ScrollList
  1522.    
  1523.   Rendering the gadget outline writes the name for ScrollList and TextArea
  1524.    
  1525.   Fix for reversed sprite pointer/name flags for items
  1526.    
  1527.   Fix for sprites being plot from specified area
  1528.    
  1529.   Fix for Help not being provided
  1530.    
  1531.   Fix for 'option' like selection being non-standard
  1532.    
  1533.   Fix for resizing failing when icons were toggled
  1534.    
  1535.   Fix for sprite highlighting
  1536.    
  1537.   Added some space beside associated sprites
  1538.    
  1539.   Added support for clipboard
  1540.    
  1541.   Added keyboard support for select all/none (ctrl-a/z
  1542.    
  1543.   Added support for reading text selection colours from the Wimp
  1544.    
  1545.   Added new flag for 'Key notifications' to gadget
  1546.    
  1547.   Fix for caret/selection positions not being set
  1548.    
  1549.   Fix for deselecting items in scrolling lists
  1550.    
  1551.   Added AutoScroll to text areas
  1552.    
  1553.   Clicking in a Text Area will now give it the focus where selection is
  1554.    
  1555.   Redraw bugs now fixed where text is inserted from clipboard
  1556.    
  1557.   Selections will now reflect the current colours, rather than the unfade
  1558.    colours
  1559.    
  1560.   Files other than text files are not dataloaded
  1561.    
  1562.   Improved redraw speed for unselected text
  1563.    
  1564.   Stripped out binary data from imported text to TextAreas
  1565.    
  1566.   Added TextArea_DataLoaded event
  1567.    
  1568.   Fix for dragging the text area selection causing a selection
  1569.    
  1570.   Fix for single pixel redraw glitch on cut
  1571.    
  1572.   Fix for text replacement on DataLoad generating binary data
  1573.    
  1574.   Added support for dragging to iconbar icons
  1575.    
  1576.   Removed the ability to insert tabs with ctrl-i in text areas
  1577.    
  1578.   Fix for memory leak on opening scroll list gadget
  1579.    
  1580.   Allowed menu to be passed through to client in scrolling lists
  1581.    
  1582.   Optimised window sizing by centralising furniture size code
  1583.    
  1584.   Another tentative fix for dataload problems in TextAreas
  1585.    
  1586.   Fix for 'hiding' scrolling lists
  1587.    
  1588.   Fix for 0-length columns becoming infinitely wide
  1589.    
  1590.   Added support for reading the scrolling list font
  1591.    
  1592.   Removed clicks being passed on (was failed menu fix)
  1593.    
  1594.   Added support for re-finding fonts on mode change (TextArea and ScrollList
  1595.    
  1596.   Tool furniture resizing can use RISC OS 4 Wimp call
  1597.    
  1598.   Fix for TextArea redraw bug on inserting text manually
  1599.    
  1600.   Fix for TextArea caret redraw bug resurfacing on cut text
  1601.    
  1602.   Fix for title bar sizing. 
  1603.   Added support for system font in text areas
  1604.    
  1605.   Fix for DataSaveAck response not using an estimated size of -1
  1606.    
  1607.   Fix for dragging objects to and from text areas. 
  1608. ToolAction  0.23 (05 Jul 2003)
  1609.   No significant changes. 
  1610. Toolbox 1.71 (27 Aug 2003)
  1611.   Rik Griffin's changes to reverse the order of the registrations of filters
  1612.    
  1613.   Updated to use Wimp_Extend 257 for sprite files
  1614.    
  1615.   Ensure that all acknowledgements are passed through
  1616. Window  1.79 (11 Jul 2003)
  1617.   Fix for crash on certain radio operations
  1618.    
  1619.   Added partial support for window colour reading
  1620.    
  1621.   Added support for parsing colour validations
  1622.    
  1623.   Text buffer length on popup menus added
  1624.    
  1625.   Added scroll request handling to sliders
  1626.    
  1627.   Fix for resizing radio and option buttons
  1628.    
  1629.   Fix for slider gadget reacting to well when a display field
  1630.    
  1631.   Fix for stringset failing to allocate sufficient space
  1632.    
  1633.   Tentative fix for windows shown with menu semantics mis-delivering events
  1634.    
  1635.   Fix for abort on shutdown
  1636.    
  1637.   Additional checks for validity of 'current_task' during shutdown operations
  1638.    
  1639.   Updated Makefile in preparation for modules release
  1640.    
  1641.   Fix for font handle leakage in icons
  1642.    
  1643.   Fix for potential 'divide by zero' in Slider
  1644. Installation on RISC OS 5
  1645. RISC OS 5 does not provide support for softloaded Toolbox modules. User
  1646. will be required to manually update their !Boot sequence. Users shoul
  1647. contact Castle Technology Ltd for more information if they uncertai
  1648. how to do this
  1649. Download location
  1650. The new Toolbox resources are available for free Download from 
  1651.   http://support.riscos.com/Support/Updates/index.htm
  1652.  
  1653. (They are also in the software directory on this issue of RISCWorld - ED)
  1654. RISC OS is a trademark of  Castle Technology Ltd. 
  1655. All other brand and product names are trademarks or registered trademarks of their respective owners
  1656.  
  1657. RISCOS Ltd
  1658.